使用列名r转换数据框

时间:2019-03-11 16:56:55

标签: r

我有一个看起来像这样的数据框

beta1   beta2    beta3
 4       67       89
 33       7       78
 6       99       33
etc

现在,我想将此数据帧转换为类似

的其他数据帧。
col1  col2
4     beta1
33    beta1
6     beta1
67    beta2 
etc

因此,这些列必须粘贴在彼此之间,第二列应由第一个数据帧的名称组成。有人知道如何做到无循环吗?

1 个答案:

答案 0 :(得分:1)

和通常的data.table方法:

library( data.table )
data <- fread("beta1   beta2    beta3
4       67       89
33       7       78
6       99       33")



melt( data, 
      measure.vars = patterns( "^beta" ), 
      variable.name = "col2", 
      value.name = "col1" )

#     col2 col1
# 1: beta1    4
# 2: beta1   33
# 3: beta1    6
# 4: beta2   67
# 5: beta2    7
# 6: beta2   99
# 7: beta3   89
# 8: beta3   78
# 9: beta3   33