【问题标题】:r merge multiple data tables using lists of data table namesr 使用数据表名称列表合并多个数据表
【发布时间】:2017-06-27 17:16:43
【问题描述】:

我有三组具有不同列集的数据表。 locationNames.xxx 变量具有带有公共列的数据集名称。

locationNames.complete <- c("BangsCanyon", "BookCliffs", "Escalante", "Highline", "Ute")
locationNames.noWind <- c("DougPass", "GrandMesa")
locationNames.noT <- c("Palisade", "Pitkin", "Whitewater")

还有一个包含所有数据集名称的变量。

allSites <- c(locationNames.complete, locationNames.noWind, locationNames.noT)

我对其中的每一个都进行了一些操作,包括一个常见的date 列,格式为 POSIXct。我想将它们全部合并到date 上的一个combined 文件中。

我知道以下合并多个数据集的方法,其中列表具有数据表名称,不带引号。

combined.sites.1 <- Reduce(merge,list(BangsCanyon, BookCliffs, Escalante))

但是以下方法都不起作用,大概是因为 locationNames 变量是字符。

combined.sites.2 <- Reduce(merge,list(locationNames.complete, locationNames.noWind, locationNames.noT))
combined.sites.2 <- Reduce(merge,list(allSites))
combined.sites.2 <- Reduce(merge,list(get(allSites)))

这三个中的最后一个给出了一个数据表,其中的列仅来自 allSites 变量中的第一个数据表。 我怀疑我遗漏了一些明显的东西。

【问题讨论】:

  • 你可以试试combined.sites &lt;- Reduce(merge,lapply(allSites,get))

标签: r merge data.table


【解决方案1】:

我认为这应该可行:

combined.sites <- Reduce(merge,lapply(allSites,get))

如果没有,请告诉我。

【讨论】:

  • 确实如此,但是...我也希望能够使用 all = TRUE 。以下不起作用。 combine.sites.test
  • @JerryN 这是将多个参数传递给 Reduce 函数 stackoverflow.com/questions/34954811/… 的解决方案
猜你喜欢
  • 2018-05-20
  • 2015-11-06
  • 2019-06-26
  • 2016-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多