使用列名创建两列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
另一个选项是创建3x3data.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
这太完美了。非常感谢。