dplyr或plyr是否具有余数函数?
假设我有一系列的MODE(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
有办法做到这一点吗?感谢
答案 0 :(得分:0)
您可以使用一个函数调用创建索引,而不是创建三个单独的剪切。然后,您可以根据需要选择匹配的列或相反的列:
idc3 = c(23,24)
indx <- as.logical(rowSums(sapply(df[,5:7], `%in%`, idc3)))
df[indx,]
# column0 column1 column2 column3 MODE1 MODE2 MODE3
# 2 53 26 9 153 23 34 85
# 3 33 66 91 693 95 23 74
# 6 37 67 97 693 34 86 24
df[!indx,]
# column0 column1 column2 column3 MODE1 MODE2 MODE3
# 1 4 83 23 863 85 86 45
# 4 6 87 27 863 47 56 52
# 5 57 27 9 153 78 38 64