【问题标题】:Combine multiple paired data frames from two lists组合来自两个列表的多个配对数据帧
【发布时间】:2016-08-07 13:36:25
【问题描述】:

我想从两个具有相同名称的列表中合并数据帧,并在绑定后删除每个数据帧中的所有重复行。我已经尝试过 'pylr' 包,但它似乎不起作用。 数据帧都具有相同的长度,如下所示:

> summary(ww)
         Length Class      Mode
WFGC01  19     data.frame list
WFGC02  19     data.frame list
WFGC03  19     data.frame list
WFGC05  19     data.frame list
WFGC09  19     data.frame list
WFGC10  19     data.frame list
WFGC13  19     data.frame list
WFGC15  19     data.frame list
WFGC17  19     data.frame list
WFGC18  19     data.frame list
WFGC19  19     data.frame list
WFGC20  19     data.frame list
WFGC21  19     data.frame list
WFGC22  19     data.frame list

 > summary(dd03)
       Length Class      Mode
WFGC02 19     data.frame list
WFGC03 19     data.frame list
WFGC05 19     data.frame list
WFGC07 19     data.frame list
WFGC10 19     data.frame list
WFGC13 19     data.frame list
WFGC17 19     data.frame list
WFGC18 19     data.frame list
WFGC22 19     data.frame list
WFGC24 19     data.frame list

【问题讨论】:

  • 你能附上你尝试过的东西吗?
  • 你是指rbindlist,然后是unique

标签: r list dataframe merge


【解决方案1】:

鉴于您的问题的解释,以下可能有效:

# get all overlapping names
bindNames <- intersect(names(ww), names(dd03))
# get a list of rbinded data.frames, keeping unique observations
newList <- lapply(bindNames, function(i) unique(rbind(ww[[i]], dd03[[i]])))

如果此时您想要将所有 data.frames 附加到单个 data.frame 中,您可以再次使用 lapply

newDataFrame <- as.data.frame(lapply(newList, rbind))

【讨论】:

  • 我谦虚地认为,如果你展示将 newList 带到 data.frame 中,你会暂时让 Yann 回家。
  • @Chris 谢谢。我不确定 OP 是否需要附加的 data.frame 列表或单个大 data.frame,但展示如何获取更大的 data.frame 不会有什么坏处。
  • @Imo 非常感谢!我只需要这个。这真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 2020-07-26
  • 2020-10-12
  • 1970-01-01
相关资源
最近更新 更多