这是我的数据框:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 3 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 4 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 5 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 6 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 7 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 8 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 9 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 10 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 11 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 12 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 13 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 14 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 15 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 16 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1
首先,我combn(4:15, 3)
用来计算组合。
像这样:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] .... [,220] [1,] 4 4 4 4 4 4 4 4 4 4 4 4 4 .... 13 [2,] 5 5 5 5 5 5 5 5 5 5 6 6 6 .... 14 [3,] 6 7 8 9 10 11 12 13 14 15 7 8 9 .... 15
我的问题是:如何使用结果combn(4:15, 3)
和我的数据集来获得大量矩阵?(在这种情况下,我需要 220 个矩阵,因为有 220 个组合。)
以第一种组合为例,第一种组合是:
[,1]
[1,] 4
[2,] 5
[3,] 6
所以我从我的数据框中取出第 4 列、第 5 列和第 6 列来得到一个像这样的新矩阵:
V4 V5 V6
1 1 1 1
2 1 1 1
3 1 -1 -1
4 1 -1 -1
5 -1 1 1
6 -1 1 1
7 -1 -1 -1
8 -1 -1 -1
9 -1 1 -1
10 -1 1 -1
11 -1 -1 1
12 -1 -1 1
13 1 1 -1
14 1 1 -1
15 1 -1 1
16 1 -1 1
有没有人有一些简单的代码来做到这一点?感谢大家的帮助!