我有两个数据框如下,我想将这些表的值一起比较(基于相同的行和列)并指定相同的值,否则为FALSE。
MonadIO m
答案 0 :(得分:5)
创建两个数据集中常见的列名索引,根据该数据集对数据集进行子集化并进行比较(==
)
nm1 <- intersect(names(data1), names(data2))
cbind(data1[1], data1[nm1][-1]==data2[nm1][-1])
# id A B
#1 m1 FALSE TRUE
#2 m2 TRUE FALSE
答案 1 :(得分:5)
merge
melt
id
后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
找到相交的列。然后生成一个具有值的相等条件的新列。最后{{1}}返回输出表的宽格式:
{{1}}