【问题标题】:Combine columns having same column name from multiple data frames合并多个数据框中具有相同列名的列
【发布时间】:2013-12-08 13:30:37
【问题描述】:

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

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

此语句生成新的 csv 文件,该文件具有每个数据帧的第一列(data1、data2、data3),如下所示。

同样,我需要在每个数据框中使用 9 列创建 9 个 csv 文件。如果可能,请在这方面提供帮助。

非常感谢。

【问题讨论】:

  • 你能不能贴一些假数据而不是数据图片。 R 没有read.image2data.frame 函数,但现在它可能会出现在某个包中。

标签: r


【解决方案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)

OR类似于post

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

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2021-03-06
    • 1970-01-01
    相关资源
    最近更新 更多