如何在 R 数据框中创建 0 和 1 的组合,并且每行都具有固定数量的 1?


要创建 0 和 1 的组合数据框,我们可以使用 expand.grid 函数以及 rep 函数。如果我们想要创建 0 和 1 的组合,并且每行都具有固定数量的 1,那么可以使用 rowSums 函数以及相应的求和值。例如,要获取包含少于三个 1 的行,则将从网格中提取 rowSums 以进行相同操作。

示例 1

 在线演示

First<−expand.grid(rep(list(0:1),3))
First

输出

Var1 Var2 Var3
1 0 0 0
2 1 0 0
3 0 1 0
4 1 1 0
5 0 0 1
6 1 0 1
7 0 1 1
8 1 1 1

创建每行中 1 的数量小于或等于 2 的组合 -

示例

First<−First[rowSums(First)<3,]
First

输出

Var1 Var2 Var3
1 0 0 0
2 1 0 0
3 0 1 0
4 1 1 0
5 0 0 1
6 1 0 1
7 0 1 1

示例 2

 在线演示

Second<−expand.grid(rep(list(0:1),4))
Second

输出

Var1 Var2 Var3 Var4
1  0  0 0 0
2  1  0 0 0
3  0   1 0 0
4  1   1 0 0
5  0   0 1 0
6  1  0 1 0
7  0   1 1 0
8  1   1 1 0
9  0 0 0 1
10 1 0 0 1
11 0 1 0 1
12 1 1 0 1
13 0 0 1 1
14 1 0 1 1
15 0 1 1 1
16 1 1 1 1

示例

Second<−Second[rowSums(Second)<4,]
Second

输出

Var1 Var2 Var3 Var4
1 0 0 0 0
2 1 0 0 0
3 0 1 0 0
4 1 1 0 0
5 0 0 1 0
6 1 0 1 0
7 0 1 1 0
8 1 1 1 0
9 0 0 0 1
10 1 0 0 1
11 0 1 0 1
12 1 1 0 1
13 0 0 1 1
14 1 0 1 1
15 0 1 1 1

示例 3

 在线演示

Third<−expand.grid(rep(list(0:1),5))
Third

输出

Var1 Var2 Var3 Var4 Var5
1 0 0 0 0 0
2 1 0 0 0 0
3 0 1 0 0 0
4 1 1 0 0 0
5 0 0 1 0 0
6 1 0 1 0 0
7 0 1 1 0 0
8 1 1 1 0 0
9 0 0 0 1 0
10 1 0 0 1 0
11 0 1 0 1 0
12 1 1 0 1 0
13 0 0 1 1 0
14 1 0 1 1 0
15 0 1 1 1 0
16 1 1 1 1 0
17 0 0 0 0 1
18 1 0 0 0 1
19 0 1 0 0 1
20 1 1 0 0 1
21 0 0 1 0 1
22 1 0 1 0 1
23 0 1 1 0 1
24 1 1 1 0 1
25 0 0 0 1 1
26 1 0 0 1 1
27 0 1 0 1 1
28 1 1 0 1 1
29 0 0 1 1 1
30 1 0 1 1 1
31 0 1 1 1 1
32 1 1 1 1 1

示例

Third<−Third[rowSums(Third)<3,]
Third

输出

1 0 0 0 0 0
2 1 0 0 0 0
3 0 1 0 0 0
4 1 1 0 0 0
5 0 0 1 0 0
6 1 0 1 0 0
7 0 1 1 0 0
9 0 0 0 1 0
10 1 0 0 1 0
11 0 1 0 1 0
13 0 0 1 1 0
17 0 0 0 0 1
18 1 0 0 0 1
19 0 1 0 0 1
21 0 0 1 0 1
25 0 0 0 1 1

更新时间: 2021 年 2 月 8 日

375 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告