将数据帧转换为R中的列表

时间:2016-04-05 06:07:23

标签: r list matrix dataframe

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

a1  a2  a3
a   1   45
b   2   55
c   4   34
d   3   87

我需要将此数据帧转换为列表,如下所示

a   a2  1
a   a2  2
a   a2  4
a   a2  3
b   a3  45
b   a3  55
b   a3  34
b   a3  87

我怎样才能在R?

中这样做

1 个答案:

答案 0 :(得分:1)

我们创建了一个新列,其中包含元素' a'' b'使用Map循环遍历第2列和第3列rbind list个元素rbindlist并使用idcol选项创建' grp& #39;来自names的{​​{1}}的列。

list

数据

 library(data.table)
 setnames(rbindlist(Map(data.frame, df1[-1], 
       letters[1:2]), idcol='grp'), 2:3, c('v1', 'v2'))[]
#   grp v1 v2
#1:  a2  1  a
#2:  a2  2  a
#3:  a2  4  a
#4:  a2  3  a
#5:  a3 45  b
#6:  a3 55  b
#7:  a3 34  b
#8:  a3 87  b