2017-09-15 56 views
2

是否可以将包含6行和4列的矩阵转换为6个向量, 每行都将是一个向量。将矩阵转换为R中的向量数

m = matrix(c(2, 4, 3, 1, 5, 7,4,8,9,4,5,0,2,5,7,6,1,8), nrow=6,ncol=3) 
m 
    [,1] [,2] [,3] 
[1,] 2 4 2 
[2,] 4 8 5 
[3,] 3 9 7 
[4,] 1 4 6 
[5,] 5 5 1 
[6,] 7 0 8 

回答

1

一种选择是splitmatrixrow打造 'N' vector S其中 'N' 的list是原matrix

lst <- split(m, row(m)) 

注意的行数:是最好创建一个list而不是在全局环境中有许多对象。此外,目前还不清楚为什么需要这样做

+1

感谢akrun。那就是我想要的到底是什么 – Noor

1

你会试试这个例子,你可以得到这个想法。

> b <- matrix(1:20, nrow = 2, ncol = 10) 

> sapply(1:ncol(b), function(i) paste(b[,i],collapse=",")) 
[1] "1,2" "3,4" "5,6" "7,8" "9,10" "11,12" "13,14" "15,16" 
[9] "17,18" "19,20" 
0

lapply A液:

lapply(as.data.frame(t(m)), c)