将列表中的 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)
我有一个数据框列表,其中包含不同维度的数据和 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)