如何在r中生成x的某些子集的列表?

时间:2017-04-25 12:20:12

标签: r

我想在r中生成一个包含其所有子集的集合,但不包含集合本身。

例如,假设我有一套

    {1, 2, 3}

我想在r

中生成以下列表
    {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}}

然而,我在r(powerset和set_power)中尝试的命令正在给出

    {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}

我想创建一个包含其所有子集的集合。 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:4)

您可以使用sets包 首先,创建集A:

library(sets)
A <- set(1,2,3)
A
{1, 2, 3}

找到电源组:

PS <- 2^A
PS
{{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}

从功率集中减去A:

B <- set_symdiff(PS,set(A))
B
{{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}}

答案 1 :(得分:0)

我已经设法通过

完成了
    s <- c(1,2,3)
    powerSet(s)[-length(powerSet(s))]

谢谢!