我有I为的数据集,例如19878、19659、19855、18658、18996、18002
我想要根据ID中的数字来过滤ID。例如,我想过滤ID在ID的第二位有9的数据,即19878、19659、19855等。
发布于 2019-01-18 18:15:06
为此,我选择了小于或等于19000的ID来分隔ID,第二个位置是9。xam8=exam[exam,1<19000,]#exam9=exam of 8 exam9=exam[exam,1>19000,]# selection of 9
但是,如果需要从整个随机数据中提取特定的IDS,则此处提供的答案非常有用
发布于 2019-01-15 00:19:57
试试这个:
data <- c(19878, 19659, 19855, 18658, 18996, 18002)使用substr()提取每个ID在"data“中的第二个位置:
substr(data,2,2)
[1] "9" "9" "9" "8" "8" "8"使用grepl()找出在第二个位置包含9的ID:
grepl(9,substr(data,2,2))
[1] TRUE TRUE TRUE FALSE FALSE FALSE将您的结果与您的"data“对象交叉:
data[grepl(9,substr(data,2,2))]
[1] 19878 19659 19855编辑: Faster solution by Gregor (删除grepl步骤):
data[substr(data,2,2) == "9"]https://stackoverflow.com/questions/54180817
复制相似问题