2016-04-12 2 views
2

У меня есть простая матрица и применить функцию для вычисления частот:Включить частоты отсутствующих значений с помощью применить() и таблицы()

testM <- matrix(c(rep(1,3), rep(0,3)), ncol = 2, byrow = T) 

> testM 
    [,1] [,2] 
[1,] 1 1 
[2,] 1 0 
[3,] 0 0 

r <- apply(testM, 1, function(x) { table(x) }) 

После применения у меня есть список таблиц

x Frq x.1 F.1 x.2 F.2 
1 2 0 1 0 2 
1 2 1 1 0 2 

Этот результат считывается с помощью пары столбцов. Как вы можете видеть, табличная функция() не «угадать», что я только подсчет 0 и 1, и ставит еще 1 с частотой 2 (или другой 0 с Frq 2), где я ожидал

x Frq x.1 F.1 x.2 F.2 
1 2 0 1 1 0 
0 0 1 1 0 2 

Любые идеи или лучшие решения?

ответ

1

Мы должны преобразовать каждую vector в factor с levels указанным

apply(testM, 1, function(x) table(factor(x, levels=0:1)))