【发布时间】:2017-08-02 08:56:24
【问题描述】:
如何使用 grep 或任何其他库根据具有“car”但不包含“carry”的列值过滤行?
rows <- (df[grep("car", df$item_text),])
【问题讨论】:
如何使用 grep 或任何其他库根据具有“car”但不包含“carry”的列值过滤行?
rows <- (df[grep("car", df$item_text),])
【问题讨论】:
假设您确实想要“car1”和“car2”,但不想要“carry”:
rows <- df[grepl("car", df$item_text) & !grepl("carry", df$item_text),]
示例数据:
df = data.frame(item_text=c("car1","car2","carry","carry1"),id=seq(1,4))
示例输出:
item_text id
1 car1 1
2 car2 2
【讨论】:
rows <- df[df$item_text=="car",]
【讨论】:
car这个词在一个字符串中(我假设这是基于OP的grep请求的情况)那么你的方法将不起作用
df = data.frame(item_text = c("car", "a car", "my carry", "carry a car", "something"))
subset(df, subset = grepl("car", df$item_text) & !grepl("carry", df$item_text))
【讨论】:
grep 给出了一个数字索引。所以逻辑 & 不起作用
grepl
Assuming you do want for example 'car1' and 'car2', but not 'carry': rows <- df[grep("car", df$item_text) & !grep("carry", df$item_text),] 发表评论的