过滤数据帧

时间:2018-05-12 18:43:32

标签: r

我有一个名为 main 的主数据框,该数据框的子集名为 main1 。我想创建一个数据框 main2 ,其中包含 main 中不是 main1 的所有内容。我该怎么做?

1 个答案:

答案 0 :(得分:-1)

您应该使用anti_join

中的tidyverse
> main<- data.frame(x1 = rnorm(10), x2 = runif(10), x3 = rpois(10, 2))
> main
           x1         x2 x3
1   1.4406206 0.30588109  2
2   0.4445457 0.92770941  2
3   0.3516765 0.33743271  3
4   1.1340182 0.01655045  3
5   0.9737873 0.88921373  0
6  -0.4238340 0.40776005  0
7   0.1655138 0.06214448  4
8  -1.5709535 0.31105756  0
9  -0.7058486 0.09526843  2
10 -0.9903269 0.36750970  2

> main1<- main[sample(1:nrow(main), 3), ]
> main1
          x1         x2 x3
5  0.9737873 0.88921373  0
4  1.1340182 0.01655045  3
9 -0.7058486 0.09526843  2

> main2<- anti_join(main, main1)
# Joining, by = c("x1", "x2", "x3")

> main2
          x1         x2 x3
1  1.4406206 0.30588109  2
2  0.4445457 0.92770941  2
3  0.3516765 0.33743271  3
4 -0.4238340 0.40776005  0
5  0.1655138 0.06214448  4
6 -1.5709535 0.31105756  0
7 -0.9903269 0.36750970  2