将data.frame列更改为R中的行

Tra*_*vis 21 r rows dataframe

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
Run Code Online (Sandbox Code Playgroud)

我想要这个:

df
   1  2
A  1  6 
B  2  7
C  3  8
D  4  9    
E  5  0
Run Code Online (Sandbox Code Playgroud)

ada*_*ich 24

如果您的数据帧真的是那种格式,那么所有的向量都将是字符向量.或者,你基本上有一个字符矩阵,你可以这样做:

data.frame(t(df))
Run Code Online (Sandbox Code Playgroud)

不过,最好只按照你想要的方式定义它

df <- data.frame(c('A','B','C','D','E'), 
                 c(1, 2, 3, 4, 5),
                 c(6, 7, 8, 9, 0))
Run Code Online (Sandbox Code Playgroud)

你也可以这样做

df <- data.frame(LETTERS[1:5], 1:5, c(6:9, 0))
Run Code Online (Sandbox Code Playgroud)

如果你想给列名称,你可以这样做

df <- data.frame(L = LETTERS[1:5], N1 = 1:5, N2 = c(6:9, 0))
Run Code Online (Sandbox Code Playgroud)

有时,如果我使用Excel数据的read.DIF,则数据会被转置.你是如何获得原始数据的?如果是这样,你可以打电话

read.DIF(filename, transpose = T)
Run Code Online (Sandbox Code Playgroud)

以正确的方向获取数据.

  • 应该只是说`as.data.frame(t(df))`.它不是"角色"模式. (8认同)