更改数据框的维度

时间:2016-02-16 19:26:57

标签: r

我有一个名为" df"的大型数据框。 (里面有一些NA值)

ApplicationContext

我想将其维度更改为32610行和28列(按行),例如:

dim(df)
[1] 2174  420    

分为:

 #df=

  a b c d e f g ...
1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...    
2 .........   
3 .........    
4 .........    
5 .........    
6 .........    
...........

因此,新维度:

#new.df=

  r1 r2 r3 r4 r5 r6 r7 ...                                                   ... r28
1 1  2  3  4  5  6  7  8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28   
2 29 30 ...   
3 .........    
4 .........    
5 .........    
6 .........    
...........

任何人都可以帮我解决这些问题吗?

1 个答案:

答案 0 :(得分:3)

要按行重新格式化数据布局,我们可以从原始data.frame的未列出元素创建一个数组:

matrix(unlist(t(df)), byrow=T, 32610, 28)

可重复的示例

没有理由在您的问题中没有可重复的示例。简化问题以理解底层解决方案非常容易:

df <- as.data.frame(matrix(1:12,3, byrow=T))
df
  V1 V2 V3 V4
1  1  2  3  4
2  5  6  7  8
3  9 10 11 12

matrix(unlist(t(df)), byrow=T, 6, 2)
     [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    5    6
[4,]    7    8
[5,]    9   10
[6,]   11   12