我们说我的数据框包含两列" a"和" b"。我想计算给定行的两列包含相同值的行数。
E.g。如果列的第1行" a"包含"蓝色" 如果列的第1行" b"包含"蓝色"比那算1。
答案 0 :(得分:2)
像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