A <- c(1,6)
B <- c(2,7)
C <- c(3,8)
D <- c(4,9)
E <- c(5,0)
df <- data.frame(A,B,C,D,E)
df
A B C D E
1 1 2 3 4 5
2 6 7 8 9 0
我想有这个:
df
1 2
A 1 6
B 2 7
C 3 8
D 4 9
E 5 0
答案 0 :(得分:23)
如果你的数据帧真的是那种格式,那么你的所有向量都将是字符向量。或者,你基本上有一个字符矩阵,你可以这样做:
data.frame(t(df))
不过,最好按照你想要的方式来定义它。
df <- data.frame(c('A','B','C','D','E'),
c(1, 2, 3, 4, 5),
c(6, 7, 8, 9, 0))
您也可以这样做
df <- data.frame(LETTERS[1:5], 1:5, c(6:9, 0))
如果您想提供列名称,可以执行此操作
df <- data.frame(L = LETTERS[1:5], N1 = 1:5, N2 = c(6:9, 0))
有时,如果我使用Excel数据的read.DIF,数据会被转置。你是如何获得原始数据的?如果是,您可以致电
read.DIF(filename, transpose = T)
以正确的方向获取数据。
答案 1 :(得分:3)
我真的推荐pythoncom.PumpMessages()
方法而不需要手动操作,因为它们容易出错
data.table
输出
A <- c(1,6)
B <- c(2,7)
C <- c(3,8)
D <- c(4,9)
E <- c(5,0)
df <- data.frame(A,B,C,D,E)
df
library('data.table')
dat.m <- melt(as.data.table(df, keep.rownames = "Vars"), id.vars = "Vars") # https://stackoverflow.com/a/44128640/54964
dat.m
R:3.4.0(backports)
操作系统:Debian 8.7