我有一个长度为 R*N 的列,我想将它转换为 R 中的 RxN 矩阵。有没有简单的方法可以在不使用循环和按值分配的情况下完成此操作?
格式为
r1
r2
r3
..
rR*N
将其转换为
r(1..N)
r(N+1 .. 2*N)
...
这在 R 中非常简单。假设您的对象被称为dat
:
matrix(dat, R, byrow=TRUE)
其中R
表示行数。
如果您的数据集很大,您可能希望节省内存。这是一个简单的例子:
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"