检查字符串是否包含带有R的列表的一个元素
我想检查data_frame_1中是否至少有一个元素在data_frame_2中,并将其添加为一个新列 我的代码:检查字符串是否包含带有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
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