当A列中的字符串位于B列中时,我可以作为子集吗?
例:
x <- data.table(a=letters, y=paste0(letters,"x")) x[grepl(a, y)] x[like(y, a)]
两者都只返回第一行的一行data.table和以下警告:
Warning message: In grepl(pattern, vector) : argument 'pattern' has length > 1 and only the first element will be used
我希望这将返回所有行。
以下代码适用grepl
于带有a
和的每一y
行。基本上,grepl的第一个参数不能是长度大于1的向量,因此需要基于循环或基于lapply的方法。
x[mapply(grepl, a, y), ] # a y # 1: a ax # 2: b bx # 3: c cx # 4: d dx # 5: e ex # 6: f fx # 7: g gx # 8: h hx # 9: i ix # 10: j jx # 11: k kx # 12: l lx # 13: m mx # 14: n nx # 15: o ox # 16: p px # 17: q qx # 18: r rx # 19: s sx # 20: t tx # 21: u ux # 22: v vx # 23: w wx # 24: x xx # 25: y yx # 26: z zx # a y