我想用条件重新排列一个矩阵。如果我有数据框:
# 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
我能做些什么来达到我想要的解决方案?
答案 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