[英]matching two partial strings in a cell in R
我读过其他文章,例如:
选择行中的列具有类似“ hsa ..”(部分字符串匹配)的字符串的行
但大多数都是简单的解决方法:
所以我在这里寻求帮助。
假设我们有一个示例数据表,如下所示:
sample = data.table('Feb FY2016', 50)
sample = rbind(sample, list('Mar FY2017', 30))
sample = rbind(sample, list('Feb FY2017', 40))
sample = rbind(sample, list('Mar FY2016', 10))
colnames(sample) = c('month', 'unit')
我如何子集数据,以便我的数据仅包含“月”列满足以下要求的行:
谢谢!
由于grep
返回其匹配项的索引,因此它将返回与模式匹配的行,并可用于子集。
sample[grep('^(Feb|Mar).*2016$', sample$month),]
# month unit
# 1: Feb FY2016 50
# 2: Mar FY2016 10
正则表达式寻找
^
的开始; Feb
或Mar
(Feb|Mar)
; .
重复0到很多次*
; 2016
; $
的结尾。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.