2017-01-25 154 views
-1

我有以下幾點:轉換矩陣向量

a <- matrix(c(1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0), nrow = 2, ncol = 7, byrow = T) 

> a 
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] 
[1,] 1 1 0 0 0 0 0 
[2,] 0 1 0 1 1 0 0 

當我嘗試a轉換爲矢量用:

b <- split(a, rep(1:nrow(a), each = ncol(a))) 

> b 
$`1` 
[1] 1 0 1 1 0 0 0 # suppose to be 1 1 0 0 0 0 0 

$`2` 
[1] 1 0 1 0 0 0 0 # suppose to be 0 1 0 1 1 0 0 

我沒有得到的11000000101100預期輸出。它看起來像矢量首先填充列。我怎麼能做到相反?

+1

另外'split.default(a,1:nrow(a))' –

回答

2

我們可以split通過row

split(a, row(a)) 

或者使用OP的方法

split(a, rep(1:nrow(a), ncol(a))) 
#$`1` 
#[1] 1 1 0 0 0 0 0 

#$`2` 
#[1] 0 1 0 1 1 0 0 

注:確保不使用each,而使用timesmatrixdata.frame等不按列拆分