Другой и очень простой подход заключается в том, чтобы сначала переключать столбцы на строки, а затем просто использовать rowSums
:
#Create sample df
df <- data.frame(col1 = c(0,1), col2 = c(1,0), col3 = c(1,1), col4 = c(0,2), col5 = c(3,0), col6 = c(0,0))
#Convert columns to rows
df_long <- t(df)
#Count number of 0s in every row and show in table of 0, 1 or 2 zeros
table(rowSums(df_long == 0))
0 1 2
1 4 1