我有一个名称数组和一个返回数据框的函数。我想结合这个数组和数据框架。例如:
>mynames<-c("a", "b", "c")
>df1 <- data.frame(val0=c("d", "e"),val1=4:5)
>df2 <- data.frame(val1=c("e", "f"),val2=5:6)
>df3 <- data.frame(val2=c("f", "g"),val3=6:7)
我想要的是一个数据框,它将此数组与数据框连接起来。 df1对应于“a”,df2对应于“b”,依此类推。因此,最终的数据框如下所示:
Names Var Val
a d 4
a e 5
b e 5
b f 6
c f 6
c g 7
有人可以帮我吗?
感谢。
答案 0 :(得分:2)
这回答了这个特殊问题,但我不确定它对您的实际问题有多大帮助:
myList <- list(df1, df2, df3)
do.call(rbind,
lapply(seq_along(mynames), function(x)
cbind(Names = mynames[x], setNames(myList[[x]],
c("Var", "Val")))))
# Names Var Val
# 1 a d 4
# 2 a e 5
# 3 b e 5
# 4 b f 6
# 5 c f 6
# 6 c g 7
在此,我们会创建一个data.frame
的列表,在我们的lapply
来电中,我们会添加新的&#34;名称&#34;列并重命名现有列,以便我们可以使用rbind
将它们放在一起。