2016-05-16 1 views
1

У меня возникла проблема с командой «table». Я сравнение два Матрицы, элементы которых 0 или 1. Я хочу совпадение и нет-совпадений в 0 или 1, так что я писал:Как показать строки нуля с таблицей

> asd=table(prob1,prob_obs_mod1) 
> asd 
    prob_obs_mod1 
prob1  0  1 
    0 650620 289511 

Проблема заключается в том, что он не показывает строку на 1 в prob1, потому что он равен нулю. Я имею в виду, я хочу «стол», чтобы показать мне:

prob_obs_mod1 
prob1  0  1 
    0 650620 289511 
    1  0  0 

Как я могу определить, что я хочу, чтобы все строки, даже нулевые из них?

+5

Try 'таблицы (фактор (prob1, уровни = 0: 1), фактор (prob_obs_mod1, уровни = 0: 1))' – nicola

+1

@RHertel Опубликовано в ответ. Я уже сгенерировал несколько выборочных данных в моих попытках немного (но эквивалентно) по-другому, чем тот, который вы предложили. Спасибо. – nicola

+0

благодарит вас! Он работал очень хорошо. – Alex

ответ

3

Хитрость заключается в назначении levels вашим векторам, поэтому учитываются вхождения каждого уровня. Попробуйте это:

#simulate some data 
set.seed(1) 
prob1<-rep(0,940131) 
prob_obs_mod1<-sample(0:1,length(prob1),T) 
#no row corresponding to 1 
table(prob1,prob_obs_mod1) 
#  prob_obs_mod1 
#prob1  0  1 
# 0 469799 470332 
#Here it appears 
table(factor(prob1,levels=0:1),factor(prob_obs_mod1,levels=0:1), dnn=c("prob1","prob_obs_mod1")) 
#  prob_obs_mod1 
#prob1  0  1 
# 0 469799 470332 
# 1  0  0