r - 如何比较两个表的值?

标签 r dataframe compare

我有两个如下所示的数据框,我想将这些表的值一起比较(基于相同的行和列名),并使用 TRUE 指定相同的值,否则使用 FALSE。

data1:

      id              A               B              C
      m1              2               2              2
      m2              2               1              2

data2:

      id              A               D              B
      m1              1               2              2
      m2              2               3              2


Output:

      id                  A             B
      m1              FALSE          TRUE
      m2              TRUE          FALSE

最佳答案

您可以通过id meltmerge 两个数据框,找到相交的列。然后为值生成一个具有相等条件的新列。最后 dcast 回到你的输出表的宽格式:

library(reshape2)
df1 <- melt(data1,"id")
df2 <- melt(data2,"id")
df3 <- merge(df1,df2,by=c("id","variable"))
df3$value <- df3$value.x == df3$value.y
result <- dcast(df3, id~variable)
##id     A     B
##1 m1 FALSE  TRUE
##2 m2  TRUE FALSE

关于r - 如何比较两个表的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39806306/

相关文章:

归还错误: type 'externalptr'

r - 将表达式作为变量传递给曲线

php - 根据另一个表列更新表列

r - 如何对数据框中的几行执行 "countif"?

R:如何从网格创建平均值的热图并使用 ggplot 绘制它?

python - Dataframe 按列值过滤行

python - 从 pandas 中的另一个数据框中检索包含单词的数据框中的行

R - 使用向量列表中的名称的子集数据框列

java - 何时使用 extends 或 Implements Comparable (Java) ? + 为什么我无法创建对象

swift - 是否可以将 Enum 值与 'if' 语句进行比较?