【发布时间】:2016-01-27 20:00:04
【问题描述】:
dplyr 或 plyr 有余数功能吗?
假设我有一系列模式(1-25)要研究
例如数据集 Main
idc3 = c("23|24")
column0|column1|column2|column3|MODE1|MODE2|MODE3
4 | 83 | 23 | 863 | 85 | 86 | 45
53 | 26 | 9 | 153 | 23 | 34 | 85
33 | 66 | 91 | 693 | 95 | 23 | 74
6 | 87 | 27 | 863 | 47 | 56 | 52
57 | 27 | 9 | 153 | 78 | 38 | 64
37 | 67 | 97 | 693 | 34 | 86 | 24
cut <- Main[unique(grep(paste(idc3), Main$MODE1)), ]
cut2 <- Main[unique(grep(paste(idc3), Main$MODE2)), ]
cut3 <- Main[unique(grep(paste(idc3), Main$MODE3)), ]
column0|column1|column2|column3|MODE1|MODE2|MODE3
53 | 26 | 9 | 153 | 23 | 34 | 85
33 | 66 | 91 | 693 | 95 | 23 | 74
37 | 67 | 97 | 693 | 34 | 86 | 24
如果我想要剩余的数据集怎么办
column0|column1|column2|column3|MODE|MODE2|MODE3
4 | 83 | 23 | 863 | 85 | 86 | 45
6 | 87 | 27 | 863 | 47 | 56 | 52
57 | 27 | 9 | 153 | 78 | 38 | 64
有没有办法做到这一点?谢谢
【问题讨论】:
-
我不清楚这与
dplyr有什么关系...您的数据是否有id列?如果您有一些名为id的唯一行标识符,那么您的remainder = Main[!Main$id %in% c(cut$id, cut2$id, cut3$id), ]。 -
我相信比正则表达式更合适的方法是
Reduce("|", lapply(Main[c("MODE1", "MODE2", "MODE3")], "%in%", c(23, 24)))来检查每一行是否有任何带有 23 或 24 的“MODE_”列。如果你否定 (!) 这个,你'会得到你想要的第二个结果。 -
谢谢 Alexis_laz 我会试试这个
-
感谢格雷戈的帮助