我有一个数据框" 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?
中这样做答案 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