根据条件过滤ID

时间:2019-01-14 11:39:39

标签: r database filtering subset data-manipulation

例如,我使用ID设置了数据 19878、19659、19855、18658、18996、18002

我想根据ID中的数字过滤ID。例如,我要过滤ID为第二的位置ID为9的数据,即19878、19659、19855等。

2 个答案:

答案 0 :(得分:1)

尝试:

data <- c(19878, 19659, 19855, 18658, 18996, 18002)

使用substr()提取每个ID在“数据”中的第二个位置:

substr(data,2,2)

[1] "9" "9" "9" "8" "8" "8"

使用grepl()找出ID在第二个位置包含9的ID:

grepl(9,substr(data,2,2))

[1]  TRUE  TRUE  TRUE FALSE FALSE FALSE

将结果与“数据”对象交叉:

data[grepl(9,substr(data,2,2))]

[1] 19878 19659 19855

编辑: 通过Gregor更快地解决问题(删除grepl步骤):

data[substr(data,2,2) == "9"]

答案 1 :(得分:0)

我这样做是通过选择小于或等于19000的ID来分隔第二个位置的ID为9的ID。 xam8 = exam [exam [,1] <19000,] #####选择8 Exam9 = exam [exam [,1]> 19000,] #####选择9

但是,如果需要从整个随机数据中获取特定IDS,则此处发布的答案很有用