gpt4 book ai didi

从 R 中的字符串中删除括号和文本

转载 作者:行者123 更新时间:2023-12-03 08:54:04 30 4
gpt4 key购买 nike

在 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 使它看起来比我们必须为括号做的所有转义更糟,因为它们是正则表达式中的特殊字符。

关于从 R 中的字符串中删除括号和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24173194/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com