gpt4 book ai didi

如果字符串包含任何单词列表,则 R 每行返回 true 或 false

转载 作者:行者123 更新时间:2023-12-04 10:09:29 25 4
gpt4 key购买 nike

我有一个包含一列字符串的数据集:

text <- c('flight cancelled','dog cat','coach travel','car bus','cow sheep',' high bar')
transport <- 0

df <- data.frame(text,transport)

对于每一行,如果字符串 'text' 包含多个单词中的任何一个,我想返回 1,否则返回 0。我的问题是,我能想到的唯一方法是使用 for 循环。有没有更有效的方法来做到这一点?我的数据集很大,所以 for 循环需要永远运行
words<- 'flight|flights|plane|seats|seat|travel|time|coach'

for (i in 1:6){
df$transport[i] <- ifelse(any(grepl(words,(str_split(as.character(df$text[i]), " ")))) == TRUE,1,0)
}

返回:
              text transport
1 flight cancelled 1
2 dog cat 0
3 coach travel 1
4 car bus 0
5 cow sheep 0
6 high bar 0

最佳答案

您可以使用 wordsdf$text直接在 grep找到要设置为 1 的行。

df$transport[grep(words, df$text)] <- 1

关于如果字符串包含任何单词列表,则 R 每行返回 true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57074127/

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