Существует функция с именем table
, которая подсчитывает различные значения всего объекта. Вы можете применить его к каждому столбцу, то есть
apply(a, 2, table)
, чтобы включить NA в счетчик. Просто используйте параметр useNA
, то есть
apply(a, 2, table, useNA = 'always')
#or with complete syntax
apply(a, 2, function(i)table(i, useNA = 'always'))
, как @IceCreamToucan упоминает в комментариях, еслиу вас есть пропущенные значения в любом столбце, и вы хотите иметь возможность привести к фрейму данных (или матрицу в этом отношении). Чтобы преодолеть это, мы можем преобразовать каждый столбец в коэффициент с levels = c(0:2)
, т.е.
apply(a, 2, function(i) table(factor(i, levels = c(0:2)), useNA = 'always'))