【问题标题】:R: How do I cross-reference data.frames for discrepancies?R:我如何交叉引用 data.frames 的差异?
【发布时间】:2019-04-05 01:39:40
【问题描述】:

背景: 我有两个数据框,两位研究人员用它们手动输入时间数据,跟踪一组参与者如何在决策中达成共识。我们通过记录每个偏好的时间来做到这一点 声明以及偏好(按优先级排序)。

问题: 我的问题是,我可以使用哪些函数或包来显示两个数据表中的差异。

示例:

差异

差异

outputExample1

提供一个仅包含不匹配条目的数据框

outputExample2

提供一个组合数据框,包含来自 myData1 和 myData2 的条目,没有匹配的条目以红色突出显示

任一输出都可以,但如果可能,我更喜欢 outputExample1

【问题讨论】:

  • 关于工具推荐的问题在这里是题外话,所以这可能会被关闭。 (不过,看看 daff 包;它非常漂亮。)
  • 仅要求推荐功能/包的问题被认为是题外话。如果您包含一个简单的 reproducible example 以及可用于测试和验证可能的解决方案的示例输入和所需输出,则更容易为您提供帮助(如果存在帮助您的包/功能,它们将包含在答案中)
  • 欢迎来到 SO,克里斯。请take the tour 并阅读how to ask a good question 上的帮助中心文章。正如@MrFlick 所说,一个好的问题将具有示例输入和所需的输出,而不仅仅是描述您正在寻找的行为的文本。
  • 如果您有一个或多个“关键”变量来确定第一个表中的哪些观察应该与第二个表中的哪些观察配对,这应该很简单。首先,您将连接这两个表,以获得一个新的组合表。然后您可以过滤以仅显示值不同的观察值。 dplyr.tidyverse.org/reference/join.html
  • @JonSpring 谢谢!我阅读了文档,这正是我所需要的。我今天会在工作中试一试。

标签: r database function dataframe rstudio


【解决方案1】:

假设两个数据帧的结构相同,可以使用以下函数得到outputExample1

show_discrepancies <- function(data1, data2) {
  data <- rbind(data1, data2)
  data[!duplicated(data),]
}

还可以查看dplyr package 中提供的连接函数。

【讨论】:

  • 太棒了!谢谢。也会试一试并报告!!
猜你喜欢
  • 1970-01-01
  • 2020-01-31
  • 2018-11-08
  • 2021-03-08
  • 2021-11-29
  • 2021-03-20
  • 1970-01-01
  • 2023-04-07
  • 2013-11-16
相关资源
最近更新 更多