R将nx1数组转换为mx4矩阵

时间:2015-08-18 12:42:39

标签: r matrix

我有一个包含100,000个元素的大型数组。我想将它转换为四列矩阵,其中col1包含值1:25000,col2包含25001:50000等。

这是循环的最佳方法吗?到目前为止,我最好的尝试都没有执行,所以想知道最好的方法。

for (i in 1:25000){
mat[i,1] <- arr[i]
mat[i,2] <- arr[i+25000]
mat[i,3] <- arr[i+50000]
mat[i,4] <- arr[i+75000]
   }

我也怀疑有更好的方法,所以如果你知道更好的方法,就会喜欢听。

举个例子:

16
48
27
80
59
20
79
24
57
7
95
11
58
91
2
29
53
4
83
47

将成为......

16  20  7   2
48  79  95  29
27  24  11  53
80  57  58  4
59  7   91  83

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

(x <- 1:20)
# [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20

dim(x) <- c(5, 4)
x
#      [,1] [,2] [,3] [,4]
# [1,]    1    6   11   16
# [2,]    2    7   12   17
# [3,]    3    8   13   18
# [4,]    4    9   14   19
# [5,]    5   10   15   20