如何逆转R中的子集?

贾菲

我正在尝试在R中制作一个完全包含组的不重叠子集。第一个子集包含来自完全包含组的成对元素。另一个子集应该是完全包含组中的所有元素,而不是第一个子集中的所有元素。

poplength <- 10
samples <- 7
numpair <- 2
totallyinclusivegroup <- sample(1:poplength, samples)
Subset1 <- sample(totallyinclusivegroup, size = numpair*2)

我不知道如何获取包含“ totallyinclusivegroup”中所有内容的“ Subset2”,而不包含子集中1中的所有内容。我尝试使用“-”运算符,但未成功。例如,

Subset2  <- totallyinclusivegroup[-Subset1]

不起作用,并且包含Subset1中的元素。任何建议/帮助表示赞赏。

阿克伦

我们可以!对的逻辑向量取反,%in%这样TRUE-> FALSE,反之亦然

 out <- totallyinclusivegroup[!totallyinclusivegroup %in% Subset1]

-输出

Subset1
#[1] 2 6 9 7

totallyinclusivegroup
#[1] 3 2 6 1 9 7 8

 out
#[1] 3 1 8

或更简单的选择是 setdiff

setdiff(totallyinclusivegroup, Subset1)
#[1] 3 1 8

如果有重复的元素,它是更好地使用vsetdiffvecsets

library(vecsets)
vsetdiff(totallyinclusivegroup, Subset1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章