【发布时间】:2021-02-26 02:45:02
【问题描述】:
我在 R 中有一个包含人员数据的数据框。字符串的第一部分是全名。每隔一段时间,我就会遇到括号中的昵称。括号中可能还有我不想删除的其他数据。这是我正在使用的一种数据的示例:
Name <- c(
"JOSEPH RYAN SMITH (USRID1)",
"ANDREA J LOPEZ RAMIREZ (USRID2) (CONTRACTOR)",
"TIMOTHY (TIM) JOHNSON (USRID3) (INTERN)",
"JESSICA JENNIFER JONES (USRID4) (CONTRACTOR)",
"WILLIAM (BILLIE) JOEL (USRID5)")
df <- as.data.frame(Name)
我明白了:
Name
1 JOSEPH RYAN SMITH (USRID1)
2 ANDREA J LOPEZ RAMIREZ (USRID2) (CONTRACTOR)
3 TIMOTHY (TIM) JOHNSON (USRID3) (INTERN)
4 JESSICA JENNIFER JONES (USRID4) (CONTRACTOR)
5 WILLIAM (BILLIE) JOEL (USRID5)
我只想删除昵称。我注意到一个昵称的不同之处在于它总是在括号中,并且总是跟在一个姓氏之后。括号中包含的所有其他指示符后跟“(”或记录结尾。我尝试删除括号中的字符串,该字符串后跟空格和字符 A-Z。
df$Name <- str_remove(df$Name, "[\\(][A-Z]+[\\)][ ][A-Z]")
这删除了姓氏的第一个字母并给了我:
Name
1 JOSEPH RYAN SMITH (USRID1)
2 ANDREA J LOPEZ RAMIREZ (USRID2) (CONTRACTOR)
3 TIMOTHY OHNSON (USRID3) (INTERN)
4 JESSICA JENNIFER JONES (USRID4) (CONTRACTOR)
5 WILLIAM OEL (USRID5)
我也没有成功尝试过“不跟(”这样的:
df$Name <- str_remove(df$Name, "[\\(][A-Z]+[\\)][ ][^\\(]")
我尝试了其他一些方法,删除了我需要保留的括号中的其他指标。任何帮助表示赞赏。谢谢。
【问题讨论】: