r - 计算包含相同值的行数?
问题描述
假设我有一个包含两列“a”和“b”的数据框。我想计算给定行的两列包含相同值的行数。
例如,如果“a”列的第 1 行包含“blue”,如果“b”列的第 1 行包含“blue”,则将计为 1。
解决方案
假设数据中没有,那么简单的事情sum(df$a == df$b)
就会给你正确的答案。NA
如果你想安全,你可以使用这样的东西:
`%==%` <- function(a,b) {
ana <- is.na(a)
bna <- is.na(b)
(ana & bna) | (!ana & !bna & a==b)
}
x1 <- c(1,2,NA,4)
x2 <- c(2,2,NA,NA)
x1 %==% x2
# [1] FALSE TRUE TRUE FALSE
sum(x1 %==% x2)
# [1] 2
推荐阅读
- javascript - 尝试返回一个数字,该数字表示当前已从图书馆借出的图书数量
- c++ - 键盘事件 | SFML I 当我按下键时,它被读取两次
- vba - 是否可以在不循环的情况下为数组赋值?VBA
- r - 映射/映射两个列表的所有可能组合
- django - 如何在 Docker 容器中更改 Django Builtin dev Server?
- r - R:使用具有多个数据框的 ggplot2 显示图例
- python - 在大型数据集上使用 scipy.kstest 时获得 0 的 p 值?
- python-2.7 - ROS python从订阅者回调中设置全局变量
- python - 热键忽略了 Linux 上的 Python libvlc 绑定
- javascript - 对象未渲染