在 R 中测试两列字符串以逐行匹配 [英] Test two columns of strings for match row-wise in R
本文介绍了在 R 中测试两列字符串以逐行匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有两列字符串:
library(data.table)
DT <- data.table(x = c("a","aa","bb"), y = c("b","a","bbb"))
对于每一行,我想知道 x 中的字符串是否存在于 y 列中.循环方法是:
For each row, I want to know whether the string in x is present in column y. A looping approach would be:
for (i in 1:length(DT$x)){
DT$test[i] <- DT[i,grepl(x,y) + 0]
}
DT
x y test
1: a b 0
2: aa a 0
3: bb bbb 1
这个有矢量化的实现吗?使用 grep(DT$x,DT$y)
只使用 x 的第一个元素.
Is there a vectorized implementation of this? Using grep(DT$x,DT$y)
only uses the first element of x.
推荐答案
你可以这样做
DT[, test := grepl(x, y), by = x]
这篇关于在 R 中测试两列字符串以逐行匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文