我需要转置一个大型数据框,所以我使用:
df.aree <- t(df.aree)
df.aree <- as.data.frame(df.aree)
Run Code Online (Sandbox Code Playgroud)
这是我获得的:
df.aree[c(1:5),c(1:5)]
10428 10760 12148 11865
name M231T3 M961T5 M960T6 M231T19
GS04.A 5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
GS16.A 5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
GS20.A 5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
GS40.A 3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04
Run Code Online (Sandbox Code Playgroud)
我的问题是我需要消除的新列名称(10428,10760,12148,11865),因为我需要将第一行用作列名.
我试过col.names()功能,但我没有得到我需要的东西.
你有什么建议吗?
编辑
谢谢你的建议!使用它我获得:
df.aree[c(1:5),c(1:5)]
M231T3 M961T5 M960T6 M231T19
GS04.A 5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
GS16.A 5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
GS20.A 5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
GS40.A 3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04
GS44.A 1.225938e+04 2.681887e+03 1.154924e+04 4.202394e+04
Run Code Online (Sandbox Code Playgroud)
现在我需要在因子列中转换行名(GS ..)....
我有一个很大的数据帧,但小例子是这样的:
mydf <- data.frame(A = c(letters[1:10]), M1 = c(11:20), M2 = c(31:40), M3 = c(41:50))
Run Code Online (Sandbox Code Playgroud)
我想转置数据帧并将列1(A)保持为列标题(字母[1:10])作为变量名称.以下是不成功代码的临时试验.
tmydf = data.frame(t(mydf))
names(tmydf) <- tmydf[1,]
Run Code Online (Sandbox Code Playgroud)
谢谢;
使用基本R,我可以转置一个数据帧,比如说mtcars,它包含同一个类的所有列:
as.data.frame(t(mtcars))
Run Code Online (Sandbox Code Playgroud)
或者用管道:
library(magrittr)
mtcars %>% t %>% as.data.frame
Run Code Online (Sandbox Code Playgroud)
如何在tidyr或tidyverse包中完成相同的操作?
我在下面的尝试给出:
错误:行的重复标识符
library(tidyverse)
mtcars %>% gather(var, value, everything()) %>% spread(var, value)
Run Code Online (Sandbox Code Playgroud)