按条件重新排列矩阵

时间:2016-06-15 17:44:28

标签: r matrix

我想用条件重新排列一个矩阵。如果我有数据框:

# My data frame
my_DF<-c(1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4)
my_DF

我需要将其转换为矩阵,通常我会这样做:

# matrix convertion
myMX<-matrix(my_DF, ncol=7,nrow=4)
myMX
     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]    1    1    2    2    3    3    4
[2,]    1    1    2    2    3    4    4
[3,]    1    1    2    3    3    4    4
[4,]    1    2    2    3    3    4    4

但是这个解决方案并没有返回所需的输出,如下所示:

  [,1] [,2] [,3] [,4] [,5] [,6] [,7]
     1    1    1    1    1    1    1
     2    2    2    2    2    2    2
     3    3    3    3    3    3    3
     4    4    4    4    4    4    4

我能做些什么来达到我想要的解决方案?

1 个答案:

答案 0 :(得分:0)

默认情况下,R将按矩阵中的列填充数据。你想要做的是逐行填写。最直接的方法是使用byrow = TRUE参数。

matrix(my_DF, ncol=7,nrow=4, byrow=TRUE)

     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]    1    1    1    1    1    1    1
[2,]    2    2    2    2    2    2    2
[3,]    3    3    3    3    3    3    3
[4,]    4    4    4    4    4    4    4