我有一个名为“mydata”的数据帧,它看起来像这样:
A B C D
1. 5 4 4 4
2. 5 4 4 4
3. 5 4 4 4
4. 5 4 4 4
5. 5 4 4 4
6. 5 4 4 4
7. 5 4 4 4
我想删除第2行,第4行,第6行。例如,像这样:
A B C D
1. 5 4 4 4
3. 5 4 4 4
5. 5 4 4 4
7. 5 4 4 4
关键思想是,你把想要删除的行组成一个集合,并保留这个集合的补项。
在R中,集合的补由'-'操作符给出。
假设data。frame是myData:
myData[-c(2, 4, 6), ] # notice the -
当然,如果您想完全删除这些行,不要忘记“重新分配”myData——否则,R只打印结果。
myData <- myData[-c(2, 4, 6), ]
简化顺序:
mydata[-(1:3 * 2), ]
顺序如下:
mydata[seq(1, nrow(mydata), by = 2) , ]
由负序排列:
mydata[-seq(2, nrow(mydata), by = 2) , ]
或者如果你想通过选择奇数来子集:
mydata[which(1:nrow(mydata) %% 2 == 1) , ]
或者如果你想通过选择奇数来子集,版本2:
mydata[which(1:nrow(mydata) %% 2 != 0) , ]
或者如果你想通过过滤偶数来子集:
mydata[!which(1:nrow(mydata) %% 2 == 0) , ]
或者如果你想通过过滤偶数来子集,版本2:
mydata[!which(1:nrow(mydata) %% 2 != 1) , ]