如何在 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 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.