合并来自多个数据框的具有相同列名的列

时间:2013-11-23 17:42:56

标签: r

我正在尝试组合来自3个不同数据框的具有相同名称的列,并使用组合列创建新数据框。具有挑战性的是每个数据框有100列,因此我必须创建100个新数据帧并将每个数据帧写为具有唯一列名的新文本文件。

enter image description here

write.csv(cbind(data1 [,1],data2 [,1],data3 [,1]),“new1.csv”)

此语句生成新的csv文件,其中包含每个数据框的第一列(data1,data2,data3),如下所示。

enter image description here

同样,我需要在每个数据框中使用9列创建9个csv文件。如果可能的话,请帮忙。

非常感谢你。

1 个答案:

答案 0 :(得分:1)

我想这是融化和重塑的经典案例

## list containing 3 data frames (10 obs, 5 columns)
df.list <- lapply(1:3, function(z) {
    m <- matrix(rnorm(50), nrow = 10)
    colnames(m) <- LETTERS[1:5]
    m
})
library(reshape2)
mdf <- melt(df.list)
list.by.var <- split(mdf, f = mdf1$Var2)
## list containing 5 data frames (10 obs, 3 columns)
lapply(list.by.var, dcast, formula = Var1 ~ L1)
与此post

类似的

OR

bind.ith.cols <- function(i) do.call(cbind, lapply(df.list, "[", TRUE, i))
nc <- ncol(df.list[[1]])
lapply(1:nc, bind.ith.cols)