【发布时间】:2018-11-19 20:26:12
【问题描述】:
假设您有两个大小相同的数据框,包含 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")
}
}
}
我还没有尝试总结结果,因为我已经在努力比较每个条目。
有谁知道,这将如何以易于理解的方式工作?
任何帮助将不胜感激!
【问题讨论】:
-
您确定所需输出的第 3 行是 1 吗?那里似乎没有匹配项。
-
@AntoniosK 是的,你是对的,我已经编辑过了,非常感谢!
标签: r loops dataframe matrix compare