R 如何在其中一个变量上使用过滤器进行tapply

R 如何在其中一个变量上使用过滤器进行tapply,r,tapply,R,Tapply,我正在使用tapply函数来获得另一个变量的变量计数。下面是代码行:tapply(vip$VAR1,vip$VAR2,length) 但是,我只想筛选在vip$VAR1上具有值“1”的观察值,我可以用tapply来完成吗 dat <- read.table(text = " VAR1 VAR2 admit num 0 0 0 7 0 0 1 1 0 1 0

我正在使用
tapply
函数来获得另一个变量的变量计数。下面是代码行:
tapply(vip$VAR1,vip$VAR2,length)

但是,我只想筛选在
vip$VAR1
上具有值“1”的观察值,我可以用
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)

dat这会起作用吗

tapply(dat[dat$VAR1==1,]$VAR1,dat[dat$VAR1==1,]$VAR2,length)
或者更简单(来自阿南达·马托的评论):


示例数据中的“VAR1”和“VAR2”在哪里?修复了数据框,我发现以下内容更容易阅读:
使用(dat[dat$VAR1==1,],tapply(VAR1,VAR2,length))
with(dat[dat$VAR1 == 1, ], tapply(VAR1, VAR2, length))