使用列名创建两列Dataframe

使用列名创建两列Dataframe,r,dataframe,R,Dataframe,我有多个类似于下面的列表 a = c(1,2,3) b = c(4,5,6) c = c(7,8,9) 我知道我可以使用cbind.data.frame创建一个3x3数据帧。但是,我想创建一个2列数据框,其中第1-3行在第1列中有a,第4-6行在第1列中有b,等等。它看起来像是从以下位置手动创建的数据框: data.frame(c('a','a','a','b','b','b'), c(1,2,3,4,5,6)) 我们可以创建一个键/值对列表元素,并使用堆栈将其转换为两列数据集。mget获取

我有多个类似于下面的列表

a = c(1,2,3)
b = c(4,5,6)
c = c(7,8,9)
我知道我可以使用
cbind.data.frame
创建一个3x3数据帧。但是,我想创建一个2列数据框,其中第1-3行在第1列中有
a
,第4-6行在第1列中有
b
,等等。它看起来像是从以下位置手动创建的数据框:

data.frame(c('a','a','a','b','b','b'), c(1,2,3,4,5,6))

我们可以创建一个
键/值
列表
元素,并使用
堆栈
将其转换为两列数据集。
mget
获取
列表中字符对象名称的值,其中key作为对象名称

stack(mget(c('a', 'b', 'c')))
#  values ind
#1      1   a
#2      2   a
#3      3   a
#4      4   b
#5      5   b
#6      6   b
#7      7   c
#8      8   c
#9      9   c

另一个选项是创建3x3
data.frame
melt
它:

library(reshape2)
melt(data.frame(a = c(1,2,3),b = c(4,5,6),c = c(7,8,9)))

#  variable value
#1        a     1
#2        a     2
#3        a     3
#4        b     4
#5        b     5
#6        b     6
#7        c     7
#8        c     8
#9        c     9

这太完美了。非常感谢。