我有一个名为" 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 .........
...........
任何人都可以帮我解决这些问题吗?
答案 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