Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何将数据帧1的每一行与数据帧2的每一行进行比较,并在值相同时求和?_R_Loops_Dataframe_Matrix_Compare - Fatal编程技术网

R 如何将数据帧1的每一行与数据帧2的每一行进行比较,并在值相同时求和?

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] ==

假设您有两个大小相同的数据帧,由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] == 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)