我正在尝试在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
如果有重复的元素,它是更好地使用vsetdiff
从vecsets
library(vecsets)
vsetdiff(totallyinclusivegroup, Subset1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句