我有两个如下所示的数据框,我想将这些表的值一起比较(基于相同的行和列名),并使用 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
melt
后merge
两个数据框,找到相交的列。然后为值生成一个具有相等条件的新列。最后 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/