比较 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
我有 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