【问题标题】:How to append a list of data.frames to a data.frame for merge?如何将 data.frames 列表附加到 data.frame 以进行合并?
【发布时间】:2015-05-11 00:55:21
【问题描述】:

我有一个来自lapply 的data.frames 列表,我们称之为dflist。我想将这些文件合并到当前不在列表中的现有 data.frame(称为master)。

如果我有一个新的 data.frames 列表,其中master 是第一个元素,下一个元素是来自dflist 的元素,我可以发出Reduce(merge, new_list)。我怎样才能到达这个列表?

这是一个可重现的例子:

library(data.table)

master <- data.table(id = 1:5, var = c("A", "B", "C", "D", "E"))
setkey(master, "id")
dflist <- list(data.table(id = 1:5, z1 = runif(5)), data.table(id = 1:5, z2 = runif(5)))
lapply(dflist, function(x) {setkey(x, "id")})

Reduce(merge, dflist) 完美运行。我想将 master 作为第一个元素包含在列表中,以将 data.tables 中的每个 z 变量合并到该文件中。

【问题讨论】:

  • 请提供一个可重现的例子。您的意思是合并将 data.frames 添加到 master 行,还是添加唯一列?

标签: r list merge


【解决方案1】:

也许

Reduce(merge, dlist, init=master)

【讨论】:

  • 谢谢,这个解决方案确实可以解决问题(尽管它本身并不能回答问题)。
  • 您可以将master 附加到dlistdlist[[length(dlist)+1]] &lt;- master
  • 是的,你是对的。使用initmaster 不会是第一个元素是没有问题的。
  • 如果担心master是最后一个元素,可以合并rev(dlist)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多