【问题标题】:tapply with an ordered factor带有有序因子的 tapply
【发布时间】:2012-11-09 12:11:47
【问题描述】:

当缺少因子水平时,您可以通过以下方式使用表格:

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

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

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

tapply(scores,marks,sum)

tapply 能否适应“缺失”因子水平的情况?或者,还有更好的方法?

【问题讨论】:

  • 顺便说一下,这对factorordered 一样有效。明确指定级别是关键。

标签: r r-factor tapply


【解决方案1】:

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

首先,我生成一个分数向量, 分数

然后分两步:

  1. 点击申请以获取未命中值的 NA 分数。这里我使用 sum 函数,如 table 函数,但我们可以使用任何自定义函数(max、min、..)

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

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

【讨论】:

    猜你喜欢
    • 2020-10-14
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多