我有一个数字(非NA)数据列表,我可以正确地返回sum
,sd
,但不能mean
。我可以sum(data)/length(data)
自己计算均值,但mean(data)
会返回NA
。如果重要的话,我计算它的方法是对数据进行排序,然后选择最大的7,如下所示:
tQs = sort(dat[ist,7:16]);
tQs = tQs[4:10];
print(tQs);
cat(sprintf("sum : %.2f\n", sum(tQs)));
cat(sprintf("avg : %.2f\n", sum(tQs)/length(tQs)));
cat(sprintf("mean: %.2f\n", mean(tQs)));
cat(sprintf("std : %.2f\n", sd(tQs)));
这是输出:
Quiz4 Quiz2 Quiz1 Quiz3 Quiz5 Quiz7 Quiz10
27 60 80 100 100 100 100 100
sum : 640.00
avg : 91.43
mean: NA
std : 15.74
知道为什么mean
无效?
编辑:最后打开warnings()
说:argument is not numeric or logical: returning NA
答案 0 :(得分:3)
平均值不适用于data.frames
。它只适用于矢量和矩阵。
如果您尝试
mean(as.matrix(tQs))
它应该有效 - 假设基础数据没有问题。