【发布时间】:2018-04-09 00:34:12
【问题描述】:
我有一个日期框架(“daten”),其中大多数列都是数值。它们的范围通常从 0 到 5。但是,它们也可以取值 99。我想计算列的平均值,仅排除值 99。
例如:
> mean(c(0, 1, 2, 3, 4, 5, 99))
[1] 16.28571
不是我需要的,而是我希望它像矢量一样被计算
> mean(c(0, 1, 2, 3, 4, 5))
[1] 2.5
,给我我正在寻找的平均值。
有一个类似的问题 (Calculate mean, median by excluding any given number),但该解决方案对我不起作用。然而,我想,一旦我可以排除任何列中的某个值,我可以简单地将它与apply 结合起来,所以我实际上正在寻找一种方法来计算某个向量的平均值,但忽略某些值。
【问题讨论】:
-
一点旁注;如果值
99是表示缺失数据的代码,那么显式声明它可能是值得的——它将使这样的计算更容易。一种方法是在读取数据时 - 请参阅read.table等的na.strings参数。 -
我实际上也有缺失,表示为 NA;但是,由于这是一项调查,我想区分遗漏(没有回答一个项目)和拒绝(这是任何问题中的一个额外选项),从而能够知道有多少受访者拒绝回答。
-
可能是您的示例不具有代表性,因为我们得到了预期的输出。
-
@akrun,你是对的 - 我没有正确理解链接中发布的答案的语法。