我想将列名转换为 R 中的识别列

Mic*_*all 4 r reshape2

嘿伙计们,我对 R 还很陌生,所以如果这是一个愚蠢的问题,我深表歉意。我有一个如下所示的数据框:

Gelatin Geltrex Combo Control
1   0.761   0.732 0.557   0.723
2   0.704   0.712 0.764   0.540
3   0.580   0.435 0.351   0.537
Run Code Online (Sandbox Code Playgroud)

我想最终得到两列;一个包含行中的数字,另一列包含当前列名称作为数字的标识符?

akr*_*run 5

如果我们需要行/列索引,我们可以使用rowcol来获取行/列索引并使用data.frame.

df2 <- data.frame(Row= c(row(df1)), 
               Col=names(df1)[col(df1)], stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

或者另一个选择melt来自library(reshape2). 我们将“data.frame”转换为“矩阵”,并melt获取行/列名称作为前两列。

library(reshape2)
melt(as.matrix(df1))[-3]
Run Code Online (Sandbox Code Playgroud)

编辑:如果我们需要value和 列名称作为两列,只需melt或使用stack@thelatemail 提到的

melt(df1)
Run Code Online (Sandbox Code Playgroud)

stack来自base R

stack(df1)
Run Code Online (Sandbox Code Playgroud)

  • `stack(df1)` 我认为他们想要。 (4认同)