2012-11-18 60 views
2

我有一个长度为R * N的单列,我想将它转换为R中的一个RxN矩阵。是否有任何简单的方法可以在不使用循环和值的情况下完成此操作通过价值分配?如何将单列转换为R中的矩阵

格式是

r1 
r2 
r3 

.. 

rR*N 

将其转换为

r(1..N) 
r(N+1 .. 2*N) 
... 

回答

4

这是很简单的R.假设你的对象称为dat

matrix(dat, R, byrow=TRUE) 

其中R表示的数行。

+1

您可能需要添加'byrow = TRUE'取决于如何将数据的结构 – James

0

如果数据集很大,您可能需要节省内存。下面是一个简单的例子:

x = round(runif(15, min=1, max=15)); 
## use dim() to set dimensions instead of matrix() to avoid duplication of x 
dim(x) <- c(3, 5); 
rowNames = c("row1", "row2", "row3"); 
colNames = c("c1", "c2", "c3", "c4", "c5"); 
dimnames(x) = list(rowNames, colNames); 
print(x); 



    c1 c2 c3 c4 c5 
row1 7 2 2 11 9 
row2 2 6 11 14 10 
row3 2 11 6 13 12 

注意类的“X”现在是“矩阵”:

> class(x) 
[1] "matrix"