Как я могу сделать tapply с фильтром по одной из переменных

Я использую функцию tapply, чтобы получить количество переменных по сравнению с другими переменными. Вот строка кода: tapply(vip$VAR1,vip$VAR2,length)

Однако я хотел бы фильтровать только наблюдения, имеющие значение "1" на vip$VAR1, могу ли я сделать это с tapply?

dat <- read.table(text = " VAR1 VAR2 admit       num
 0        0        0         7
 0        0        1         1
 0        1        0         3
 0        1        1         7
 1        0        0         5
 1        0        1         1
 1        1        0         0
 1        1        1         6", header = TRUE)

person mql4beginner    schedule 14.04.2014    source источник
comment
Где находятся VAR1 и VAR2 в ваших выборочных данных?   -  person A5C1D2H2I1M1N2O1R2T1    schedule 14.04.2014
comment
исправил фрейм данных, спасибо   -  person mql4beginner    schedule 14.04.2014


Ответы (1)


Будет ли это делать свое дело?

tapply(dat[dat$VAR1==1,]$VAR1,dat[dat$VAR1==1,]$VAR2,length)

Или проще (из комментария Ананды Махто):

with(dat[dat$VAR1 == 1, ], tapply(VAR1, VAR2, length))
person Joe    schedule 14.04.2014
comment
Мне легче читать следующее: with(dat[dat$VAR1 == 1, ], tapply(VAR1, VAR2, length)). - person A5C1D2H2I1M1N2O1R2T1; 14.04.2014