R - tapply在空单元格上产生NULL

时间:2013-11-15 14:48:57

标签: r

是否有一种优雅的方法可以使空白单元格中的tapply 返回NULL? (来自?tapply:“对于列表结果,与空单元格对应的元素为NULL。”)

即。与

v1 = factor(rep(c(1,3),3),levels = 1:3)
v2 = factor(c("A","B","B","A","A","B"),levels=c("A","B"))
tapply(v2,v1,table)

我得到了

$`1`

A B 
2 1 

$`2`
NULL

$`3`

A B 
1 2 

而期望的输出将是

$`1`

A B 
2 1 

$`2`

A B 
0 0 

$`3`

A B 
1 2 

谢谢!

1 个答案:

答案 0 :(得分:2)

以下是使用splitlapply代替tapply

的方法
> lapply(split(v2, v1), table)
$`1`

A B 
2 1 

$`2`

A B 
0 0 

$`3`

A B 
1 2