如何在data.table中提取含指定字符串的列值向量?
解决方法
你可以通过逻辑索引子集化或者利用data.table的特性来实现需求,以下是几种实用的方式:
方法1:基础R子集化
直接用grepl返回的逻辑向量,筛选dat$var中对应为TRUE的元素:
matches <- dat$var[grepl("string", dat$var)]
方法2:data.table原生语法
利用data.table的行筛选+列提取,写法更贴合data.table的使用习惯:
matches <- dat[grepl("string", var), var]
方法3:data.table模糊匹配运算符%like%
data.table内置了%like%运算符,等价于grepl,可以简化代码:
matches <- dat[var %like% "string", var]
以上三种方法运行后,matches都会得到你期望的结果:
> matches [1] "thisstring" "otherstring"
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

