用有序因子tapply

时间:2012-11-21 09:21:46

标签: r r-factor tapply

如果缺少因子级别,您可以按以下方式使用表格:

marks <- c(1,5,3,4,5,6)
table(ordered(marks,levels=1:6))

将返回以零频率列出的级别为“2”的表。

如果有一组与“标记”相关联的“分数”并且没有丢失级别(此处为2),则tapply可用于生成每个级别的分数总和。

tapply(scores,marks,sum)

可以适应“缺失”因素水平的情况吗?或者,还有更好的方法?

1 个答案:

答案 0 :(得分:1)

这里的想法是模拟函数行为。

首先,我生成一个得分矢量,     得分&lt; - 样本(1:6)

然后分2步:

  1. 在missng值上获得NA分数。这里我使用sum函数,如表函数,但我们可以使用任何自定义函数(max,min,..)

     res <- tapply( scores , ordered(marks,levels=1:6),function(x) {sum(x)} )
    
  2. 然后只需替换缺失值

     res[is.na(res)] <- 0