如何找到列中的单词出现在包含整个句子的另一列中

时间:2017-08-02 10:50:49

标签: r string

我期待一个R解决方案,可以检查数据框的句子(第2列)中是否存在单词(第1列)。如果单词出现在句子中,则应返回1(TRUE)或0(FALSE)。 This is how my DF looksThis is how it should look like

我非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

使用grepl()

df$t <- apply(df, 1, function(x) grepl(x[1], x[2]))
df
      substring                      string     t
1         phone this is my new mobile phone  TRUE
2        phones      Yes, I have two phones  TRUE
3 telephonessss            my old telephone FALSE
4  telephone234                   telephone FALSE

请注意,此解决方案在行模式下使用apply()函数。从概念上讲,我们想要检查数据帧的每一行是否包含在字符串中的每个子字符串。

在这里演示:

Rextester

答案 1 :(得分:0)

您可以使用stri_detect_fixed

中的stringi

首先,我从两个向量

创建了小数据帧
substring <- c("phone", "phones", "telephonesss")
string <- c("this is my new mobile phone", "Yes, I have two phones","my old telephone")
df <- data.frame(substring, string)

然后我在名为“t”的数据框中创建了包含值TRUE或FALSE

的新列
 df$t <- stri_detect_fixed(df$string, df$subatring)

输出

> df
     substring                      string t
1        phone this is my new mobile phone  TRUE
2       phones      Yes, I have two phones  TRUE
3 telephonesss            my old telephone FALSE