将列表中的 DF 单独合并到另一个 DF

Merging DF in a list individually to another DF

我有一个数据框列表,其中包含不同维度的数据和 row/col 国家名称。我在此列表之外还有一个“主”数据框,它是空白的,方形尺寸为 189x189。

我希望将列表中的每个数据框单独合并到“主”sheet 保留方矩阵维度的顶部。我已经能够使用此代码单独实现此目的:

rownames(Trade) <- Trade$X
Trade <- Trade[, 2:length(Trade)]

Full[row.names(Trade), colnames(Trade)] <- Trade

“完全”是我的主人sheet,“贸易”是个人 df。

我试图创建一个函数来将此过程应用于数据帧列表,但我无法正确执行此操作。

有问题的函数和代码:

  DataMerge <- function(df) {

    rownames(df) <- df$Country
     Trade <- Trade[, 2:length(Trade)]
    
    Country[row.names(df), colnames(df)] <- df
  
  }

应用使用:

DataMergeDF <- lapply(TradeMatrixDF, DataMerge)
filenames <- paste0("Merged",names(DataMergeDF), ".csv")
mapply(write.csv, DataMergeDF, filenames)

Country <- read.csv("FullCountry.csv")

然而最终发生的是数据没有正确合并/维度没有保留。

几天前我问了一个与此问题有关的问题 (CSV generated from not matching to what I have in R),但我怀疑我 运行 由于使用了“[=31] 而陷入此问题=]”。但是,我不是 100% 确定。

如果我们 return 最后 'Country' 它应该可以工作。另外,最好将其他数据作为参数传递

DataMerge <- function(Country, df) {

    rownames(df) <- df$Country
     df <- df[, 2:length(df)]
    
    Country[row.names(df), colnames(df)] <- df
    Country
  
  }

那么,我们称这个函数为

DataMergeDF <- lapply(TradeMatrixDF, DataMerge, Country = Country)