R 包含单词的过滤器
我在R上创建了一列路径,如下所示:R 包含单词的过滤器,r,R,我在R上创建了一列路径,如下所示: Path Adam > Bob > Jeff Bob > Sarah > Kevin Adam > Sarah > Kevin Jeff > Adam > Bob Adam > Kevin > Jeff 如何过滤该列,使其只包含以下路径: Path Adam > Bob > Jeff Jeff > Adam > Bob Adam > Kevin > Jeff 我
Path
Adam > Bob > Jeff
Bob > Sarah > Kevin
Adam > Sarah > Kevin
Jeff > Adam > Bob
Adam > Kevin > Jeff
如何过滤该列,使其只包含以下路径:
Path
Adam > Bob > Jeff
Jeff > Adam > Bob
Adam > Kevin > Jeff
我们可以使用
grep
或者使用[
(对于[
,默认情况下drop=TRUE
——因此,我们需要将其更改为drop=FALSE
,以避免将一列/一行数据集转换为向量
)
或者对于子集
,我们不必像默认情况下那样使用drop=FALSE
subset(df1, grepl("\\bJeff\\b", Path, ignore.case = TRUE))
# Path
#1 Adam > Bob > Jeff
#4 Jeff > Adam > Bob
#5 Adam > Kevin > Jeff
我们匹配的模式是“Jeff”,但为了更严格,即不匹配“Jeffy”或“Jefferson”,我们可以在单词前后添加单词边界(
\\b
)。尝试df1[grep(\\bJeff\\b),df1$Path,ignore.case=TRUE),drop=FALSE]
您想区分“Jeff”和“Jefferson”吗太棒了,伙计,谢谢阿洛蒂试图使用过滤器,但没用,阿克伦解决了,所以别担心。
subset(df1, grepl("\\bJeff\\b", Path, ignore.case = TRUE))
# Path
#1 Adam > Bob > Jeff
#4 Jeff > Adam > Bob
#5 Adam > Kevin > Jeff