将数据框的一些列转换为行

Transform data frame some columns into rows

数据

我有一个这样的数据框:

 id weigth temp_s1 temp_s2
  1     50       2       7
  2     51       3       8
  3     52       4       9
  4     53       5      10
  5     54       6      11

我想要什么

我想获得这个:

     id weigth  temp    value
      1     50  temp_s1     2
      1     50  temp_s2     7
      1     51  temp_s1     3
      1     51  temp_s2     8
      1     52  temp_s1     4
      1     52  temp_s2     9
      1     53  temp_s1     5
      1     53  temp_s2     10
      1     54  temp_s1     6
      1     54  temp_s2     11

您应该使用 reshape2 包中的 melt 函数,如下所示:

melt(df, c("id", "weight"))