假设您有两个大小相同的数据帧,由 TRUE、FALSE 或 NA 条目组成:
df1 <- data.frame(a = c(T, F, F, F, T), b=c(F, NA, NA, F, T))
View(df1)
df2 <- data.frame(a = c(T, T, T, F, NA), b=c(T, NA, T, F, T))
View(df2)
现在你想看看 df1 的每一行中有多少条目与 df2 中的条目完全相同。结果应如下所示:
SumOfSimilarValuesPerRow <- data.frame(Result = c(1, 0, 0, 2, 1))
View(SumOfSimilarValuesPerRow)
因此,首先您可能需要将 df1 的每一行中的每个条目与 df2 中的相同条目进行比较,然后汇总结果。
我尝试了双循环,但不断收到错误
missing value where TRUE/FALSE needed
尝试以下操作时:
for (i in 1:5) {
for (j in 1:2) {
if(df1[i, j] == df2[i, j]) {
print("OK")
}
}
}
我还没有尝试总结结果,因为我已经在努力比较每个条目。
有谁知道,这将如何在一个易于理解的法西恩中工作?
任何帮助将不胜感激!
你可以简单地这样做
rowSums(df1 == df2, na.rm = TRUE)
==
逐个元素进行比较,这适用于问题的要求,因为您的df1
和df2
具有相同的大小(和结构(。