Раствор основания R.
Сравните и просуммируйте по строкам:
rowSums(mapply(`==`, df1, df2))
#[1] 1 2
Редактировать.
Выше - новая версия этого поста. Оригинал просуммирован по столбцам. Вот код.
Возвращаемое значение - это список логических векторов, затем *apply
функция sum
.
Map(`==`, df1, df2)
#$Q1
#[1] TRUE TRUE
#
#$Q2
#[1] FALSE TRUE
#
#$Q3
#[1] FALSE FALSE
#
#$Q4
#[1] FALSE FALSE
res <- Map(`==`, df1, df2)
sapply(res, sum)
#Q1 Q2 Q3 Q4
# 2 1 0 0
Однострочным будет
sapply(Map(`==`, df1, df2), sum)
Еще один, быстрее.
colSums(mapply(`==`, df1, df2))
#Q1 Q2 Q3 Q4
# 2 1 0 0