R 如何将数据帧1的每一行与数据帧2的每一行进行比较,并在值相同时求和?
假设您有两个大小相同的数据帧,由TRUE、FALSE或NA组成:R 如何将数据帧1的每一行与数据帧2的每一行进行比较,并在值相同时求和?,r,loops,dataframe,matrix,compare,R,Loops,Dataframe,Matrix,Compare,假设您有两个大小相同的数据帧,由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) 尝试以下操作时: for (i in 1:5) { for (j in 1:2) { if(df1[i, j] ==
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)
尝试以下操作时:
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
具有相同的大小(和结构) 您确定所需输出的第三行是1吗?似乎没有匹配项。@AntoniosK是的,你是对的,我已经编辑过了,非常感谢!非常感谢你,我不知道它会这么简单!你帮了我很多!
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)