使用通配符子集数字数据?

时间:2016-01-20 22:44:36

标签: r filter dplyr subset

我需要根据网站ID过滤数据集。 基本上,我想选择以01结尾的所有站点ID。 站点ID的长度为6位数。例如:

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

我可以在数字(或整数)数据上使用通配符,例如:

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

1 个答案:

答案 0 :(得分: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