检查字符串是否包含带有R的列表的一个元素

检查字符串是否包含带有R的列表的一个元素,r,regex,loops,R,Regex,Loops,我想检查data_frame_1中是否至少有一个元素在data_frame_2中,并将其添加为一个新列 我的代码: library(data.table) object_to_check <- data.table(c('aaax', 'bbbx', 'cccy', 'dddk', 'mmmt')) colnames(object_to_check) <- 'x' list_of_element <- data.table(c('ax', 'kh', 'dk')) colna

我想检查data_frame_1中是否至少有一个元素在data_frame_2中,并将其添加为一个新列

我的代码:

library(data.table)

object_to_check <- data.table(c('aaax', 'bbbx', 'cccy', 'dddk', 'mmmt'))
colnames(object_to_check) <- 'x'
list_of_element <- data.table(c('ax', 'kh', 'dk'))
colnames(list_of_element) <- 'y'

Fun2 <- function(element_to_find, string_to_check) {
   element_to_find <- '0'
      if (element_to_find == '0') {
         for (i in 1:length(list_of_element)) {
            m <- lista[i]
            element_to_find <- ifelse(grepl(m, string_to_check, ignore.case = T) == T,string_to_check,'')
         }
      }
   }

object_to_check <- object_to_check[, check := Fun2(check, x)]
我被这个错误缠住了,找不到解决问题的办法。sameone能帮我吗

期望输出:

x check
aaax ax  
bbbx NA
cccx NA 
dddk dk  
mmmt NA 

谢谢

你可以这样做

> df1 <- data.frame(row.names=1:4, var1=c(TRUE, TRUE, FALSE, FALSE), var2=c(1,2,3,4))
> df2 <- data.frame(row.names=5:7, var1=c(FALSE, TRUE, FALSE), var2=c(5,2,3))
> df1
   var1 var2
1  TRUE    1
2  TRUE    2
3 FALSE    3
4 FALSE    4
> df2
   var1 var2
5 FALSE    5
6  TRUE    2
7 FALSE    3
>df1 df2 df1
var1 var2
1正确的1
2正确的2
3假3
4假4
>df2
var1 var2
5假5
6正确的2
7假3
还有一些其他最简单的方法也可用。您可以使用
all.equal(目标、当前等)
函数。它不会对数据帧进行排序。
另一种方法是使用
idential()
Function

请根据示例显示您的预期输出谢谢,但我必须检查df2中的字符串是否包含在df1的较大字符串中。完全相同无法解决我的问题,我必须使用正则表达式来检查string_df2是否在string_df1中
> df1 <- data.frame(row.names=1:4, var1=c(TRUE, TRUE, FALSE, FALSE), var2=c(1,2,3,4))
> df2 <- data.frame(row.names=5:7, var1=c(FALSE, TRUE, FALSE), var2=c(5,2,3))
> df1
   var1 var2
1  TRUE    1
2  TRUE    2
3 FALSE    3
4 FALSE    4
> df2
   var1 var2
5 FALSE    5
6  TRUE    2
7 FALSE    3