【发布时间】:2021-04-06 13:02:09
【问题描述】:
我有一个词向量,我需要用它来选择数据框中的几行,其中包含超过 1000 个观察值。下面我放一个简单的。
这些是我要在数据框中寻找的食物:ls_foods <- c("Abacate", "Abacaxi", "Abóbora", "Abobrinha", "Acelga", "Acerola", "Alface", "Almeirão", "Arroz", "Banana", "Batata", "Batata doce", "Berinjela","Brocolis","Cacau", "Café")
这是df。我必须只选择包含向量ls_foods 中单词的行。其中一些包含特殊字符,而另一些则不包含。
id <- (1:5)
Variables <- c("abacate - kg", "batata inglesa - Kg", "Pera - pés", "Brocolis - Kg", "Laranja (Lima, Pêra, da Terra, etc) - Pés")
df <- data.frame(id, variables)
我试过了,但没有成功:
df <- df[grepl(ls_foods, df$desc_var)]
我期望的结果是:
id <- c(1, 2,4)
Variables <- c("abacate - kg", "batata inglesa - Kg", "Brocolis - Kg")
df_1 <- data.frame(id, variables)
提前致谢!
【问题讨论】:
-
你的问题不是很清楚,但也许你想要
est_1km[est_1km$desc_var %in% ls_alimento, ]。 -
我也试过这个。也许我可以尝试一个'''循环''',但我不太擅长。
-
编辑后问题更清楚了。确实,我的评论方式不对。
-
你可以试试这个,
grepl(paste0(ls_foods, collapse="|"), df$desc_var) -
如果您没有在
[中为数据框添加逗号,它将默认为列。你想要行。所以试试df <- df[grepl(paste0(ls_foods, collapse="|"), df$desc_var), ],它既添加了所需的逗号,又将模式与|连接起来用于OR。