2016-01-20 46 views
0

我需要根据站点ID过滤数据集。 本质上,我想选择以01结尾的所有站点ID。 站点ID的长度是6位数。例如:使用通配符的子集数字数据?

myData <- data.frame(ID = c(202001, 202002, 202003, 203001), someData = c(10, 20, 30, 40)) 

我可以使用数字(或整数)数据通配符,像:

filter(myData, ID = ****01) 
+3

'myData的讲话[grepl( “$ 01”,myData的$ ID),]'应该这样做 –

+1

在dplyr翻译猜测 - '过滤器(mydata,grepl(“01 $”,ID))'? – thelatemail

+0

感谢dplyr翻译。一部分让人感到困惑的事情就是R中的所有'皮肤猫'的各种方式。 – SoilSciGuy

回答

3

您可以使用grepl()(和其他正则表达式匹配功能)正则表达式01$$表示我们希望匹配从字符串的末尾开始。

myData[grepl("01$", myData$ID), ] 
#  ID someData 
# 1 202001  10 
# 4 203001  40 

@thelatemail具有评价一个dplyr方法,也使用grepl()

filter(myData, grepl("01$", ID)) 

和途径皮肤猫

filter(myData, substr(ID, 5, 7) == "01") 
#  ID someData 
# 1 202001  10 
# 2 203001  40