在R中,我列出了一些公司,例如:
companies <- data.frame(Name=c("Company A Inc (COMPA)","Company B (BEELINE)", "Company C Inc. (Coco)", "Company D Inc.", "Company E"))
我想删除带有括号的文本,并以下面的列表结尾:
Name
1 Company A Inc
2 Company B
3 Company C Inc.
4 Company D Inc.
5 Company E
我尝试的一种方法是拆分字符串,然后使用ldply:
companies$Name <- as.character(companies$Name)
c<-strsplit(companies$Name, "\\(")
ldply(c)
但是因为并非所有公司名称都有括号部分,所以它失败了:
Error in list_to_dataframe(res, attr(.data, "split_labels"), .id, id_as_factor) :
Results do not have equal lengths
我还没有加入strsplit解决方案。只要删除该文本,括号就可以了。
一个gsub
应该在这里工作
gsub("\\s*\\([^\\)]+\\)","",as.character(companies$Name))
# [1] "Company A Inc" "Company B" "Company C Inc."
# [4] "Company D Inc." "Company E"
在这里,我们仅将出现的“(...)”替换为空(也删除了任何前导空格)。R使它看起来比括号中的所有转义字符都更糟糕,因为它们是正则表达式中的特殊字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句