這裏是我的數據幀:如何使用combn和數據框的結果來獲得新的martix?
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
沒有人有一些簡單的代碼片段做到這一點?感謝大家的幫助!
只是爲了澄清,你想獲取所有的220'data.frame'子集並存儲在一個變量(如Ananda的解決方案)嗎?或者你不知道如何索引,你需要*不*要同時加載所有'data.frame'子集? – Arun 2013-04-21 17:36:16
@Arun +1,瞭解這一點很重要。 – Nishanth 2013-04-22 02:34:39
@Arun 我不確定哪種方法更適合我想要在下一步中實現的目標。 在下一步中,我想爲220個子集中的每一個添加一個固定列,以創建一組新的子集(集合A)。然後我想要使用combn(4,2)的模式乘以每個子集(集合A)中的列,然後combn(4,3),然後combn(4,4)。然後用結果創建另一組子集(集合B),包括原始的4列。 – Stacy 2013-04-22 10:06:37