-4

I have a main dataframe called main and a subset of this dataframe called main1 . I want to create a dataframe main2 which is includes everything in main which is not main1 . How would I do this?

user21478
  • 155
  • 2
  • 3
  • 10

1 Answers1

0

You should use anti_join from the 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
Yannis Vassiliadis
  • 1,719
  • 8
  • 14