我想从Name列中提取标题(先生、太太、小姐),并将这些提取的标题导入新的Title列.相关数据如下:

snippet <- data_frame(Name=c('Braund, Mr. Owen Harris','Cumings, Mrs. John Bradley','Heikkinen, Miss. Laina'),Column=c('blah','blah,'blah'))

我已经复习了this answer遍,但我肯定错过了什么.

这是我能想出的最好的代码:snippet <- mutate(snippet, Title = str_extract(snippet $Name, "(?<=,)[^,]*(?=.)").这会添加Title列,但该列中的所有值都是NA.我的错在哪里?谢谢

推荐答案

也许这会有所帮助——在"Name"列中,,后面有一个空格,所以我们使用regex lookaround来匹配非空白字符(\\S+),,后面的字符成功,空格((?<=, ))在.前面(.是元字符,所以我们转义,否则它匹配任何字符)

library(dplyr)
library(stringr)
snippet <- snippet %>% 
  mutate(Title = str_extract(Name, "(?<=, )\\S+(?=\\.)"))

-输出

snippet
# A tibble: 3 × 3
  Name                       Column Title
  <chr>                      <chr>  <chr>
1 Braund, Mr. Owen Harris    blah   Mr   
2 Cumings, Mrs. John Bradley blah   Mrs  
3 Heikkinen, Miss. Laina     blah   Miss 

数据

snippet <- structure(list(Name = c("Braund, Mr. Owen Harris", 
"Cumings, Mrs. John Bradley", 
"Heikkinen, Miss. Laina"), Column = c("blah", "blah", "blah")), 
class = c("tbl_df", 
"tbl", "数据.frame"), row.names = c(NA, -3L))

R相关问答推荐

在边界外添加注释或标题

从开始时间和结束时间导出时间

如何从当前行上方找到符合特定条件的最接近值?

在数学中正确显示摄氏度、开氏度或华氏度

如何在emmeans中计算连续变量的对比度

如何将旋转后的NetCDF转换回正常的纬度/经度网格,并使用R?

Rplotly中的Sankey Diagram:意外连接&

如何调整曲线图中的y轴标签?

根据列A中的差异变异列,其中行由列B中的相对值标识

仅 Select 超过9行的CSV文件

按多列统计频次

如何从向量构造一系列双边公式

如何在使用箭头R包(箭头::OPEN_DATASSET)和dplyr谓词时编写具有整齐计算的函数?

我们如何在R中透视数据并在之后添加计算

将工作目录子文件夹中的文件批量重命名为顺序

计算使一组输入值最小化的a、b和c的值

如何在shiny 的应用程序 map 视图宣传单中可视化单点

从两个数据帧中,有没有办法计算R中一列的唯一值?

如何修复geom_rect中的层错误?

将矩阵中特定行的双精度值添加到下一行中