gpt4 book ai didi

regex - 如何在 R 中使用 grep() 从数据框中选择行

转载 作者:行者123 更新时间:2023-12-05 06:44:23 25 4
gpt4 key购买 nike

我正在尝试根据其中一列的内容从数据框中选择行。我正在使用 grep() 但是当尝试匹配内容的末尾时,它只匹配提交的最后一个模式。

这是代码:

df1 <- data.frame(cName=c(
'A Co', 'B Co', 'C Co', 'D Co',
'F Llc', 'G Llc', 'H Llc', 'I Llc',
'P Inc', 'Q Inc', 'R Inc', 'S Inc'))
tName <- grep( ("Inc$ | Llc$"),df1$cName, value = T)
tName
[1] "F Llc" "G Llc" "H Llc" "I Llc"

我期望它返回所有出现的 'Inc' 和 'Llc'。但是,只返回正则表达式中的最后一个。我尝试了各种括号、圆括号和 [:space:] 的组合,但都没有成功。怎么了?感谢您的任何建议。

最佳答案

这里是 the code that works正如预期的那样:

df1 <- data.frame(cName=c(
'A Co', 'B Co', 'C Co', 'D Co',
'F Llc', 'G Llc', 'H Llc', 'I Llc',
'P Inc', 'Q Inc', 'R Inc', 'S Inc'))
tName <- grep( ("(Inc|Llc)$"),df1$cName, value = T)
tName

输出:[1] "F Llc""G Llc""H Llc""I Llc""P Inc""Q Inc""R Inc""S Inc"

原始正则表达式没有按预期工作,因为它需要在字符串结束 anchor 后有一个空格,这是不可能的。你可以看到 regex explanation at regex101.com .

关于regex - 如何在 R 中使用 grep() 从数据框中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29334140/

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