Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在具有多个值的列值中匹配字符串_R_Data.table - Fatal编程技术网

R 在具有多个值的列值中匹配字符串

R 在具有多个值的列值中匹配字符串,r,data.table,R,Data.table,请帮我做这个 我有一个如下的数据表 dt2 <- data.table(ID = c(1,1,2,2,3,3,4,4,4), variable = c("a","b","a","c","c","d","e","b","a")) dt3 <- dt2[, list(variables = paste(variable, collapse = " | ")), by = ID] dt3[,chk:=sample(letters[1:2])] dt3

请帮我做这个 我有一个如下的数据表

    dt2 <- data.table(ID = c(1,1,2,2,3,3,4,4,4), variable =     c("a","b","a","c","c","d","e","b","a"))
    dt3 <- dt2[, list(variables = paste(variable, collapse = " | ")), by = ID]
    dt3[,chk:=sample(letters[1:2])]
    dt3
    ID variables chk
1:  1     a | b   b
2:  2     a | c   a
3:  3     c | d   b
4:  4 e | b | a   a

dt2这里有一种
mapply
方法。它在操作中逐元素获取两个参数:

dt3[mapply(grepl, x=variables, chk)]
#   ID variables chk
#1:  1     a | b   b
#2:  2     a | c   a
#3:  4 e | b | a   a

这里有一种
mapply
方法。它在操作中逐元素获取两个参数:

dt3[mapply(grepl, x=variables, chk)]
#   ID variables chk
#1:  1     a | b   b
#2:  2     a | c   a
#3:  4 e | b | a   a

我们可以使用
paste
grep

dt3[with(dt3, grep(paste(chk, collapse='|'), variables)),]
#     ID variables chk
#1:  1     a | b   a
#2:  2     a | c   b
#3:  4 e | b | a   b

我们可以使用
paste
grep

dt3[with(dt3, grep(paste(chk, collapse='|'), variables)),]
#     ID variables chk
#1:  1     a | b   a
#2:  2     a | c   b
#3:  4 e | b | a   b

很有魅力!!谢谢你的魅力!!谢谢