比较 R 中多个数据帧的唯一值

Comparing unique values across multiple data frames in R

我有 3 个数据框 (df1,df2,df3),每个数据框有 1274 行和 2192 列。我想计算单元格的值在 df1 中匹配 0.968,在 df2 中匹配 0.972,在 df3 中匹配 0.909 时出现的次数。请注意,单元格必须位于完全相同的位置(相同的行号和列号)。

示例,

df1

| 0.968 | 0.526 |
| 0.938 | 0.632 |
| 0.873 | 0.968 |

df2

| 0.342 | 0.972 |
| 0.545 | 0.231 |
| 0.434 | 0.972 |

df3

| 0.673 | 0.812 |
| 0.128 | 0.764 |
| 0.909 | 0.909 |

答案应该return: 1

使用循环是解决此问题的最佳选择吗?

您可以试试下面的代码

sum(df1==0.968 & df2 == 0.972 & df3 = 0.909)

如果您想索引 TRUE 值,可以使用 which

which(df1==0.968 & df2 == 0.972 & df3 = 0.909, arr.ind = TRUE)

另一个可能的解决方案:

sum((df1 == 0.968) *  (df2 == 0.972) * (df3 == 0.909))

#> [1] 1