计算R中几列的平均值

时间:2017-10-31 06:03:03

标签: r

我已经阅读了有关如何计算R中各列的均值的各种线程,但我遇到的问题是我在R中使用的函数到目前为止给出了与其他程序(SAS和SPSS)不同的结果。

到目前为止,我已经使用了这些功能:

newdata2$birdsMean <- rowMeans(newdata2[,7:15], na.rm=TRUE)
(The bird data appears in columns 7 to 15.)  

和:

newdata2$mean=rowMeans(newdata2[,c("bird1", "bird2", "bird3", "bird4", "bird5", "bird6", "bird7", "bird8", "bird9")], na.rm=TRUE)  

和:

newdata2$mean <- rowMeans(subset(newdata2, select = c(bird1, bird2, bird3, bird4, bird5, bird6, bird7, bird8, bird9)), na.rm = TRUE)  

上述所有这些功能都给我的结果与SAS和SPSS不同,因为我与其他使用这两个程序的人一起工作,我担心这些差异。在一个例子中,平均值的差异大到308。

此外,上述函数中的中位数与SAS和SPSS中相同变量的中位数相同,但大多数其他结果(Min,Max,SD)不同。

到目前为止,以下函数给出的结果与SAS和SPSS一致:
mean(newdata2$bird1, na.rm = TRUE) ((然后我为其他鸟类重复此操作,然后打开计算器以获得所有鸟类的平均值。))

和:

Supermean <- (mean(newdata2$bird1, na.rm = TRUE) + mean(newdata2$bird2, na.rm = TRUE) + mean(newdata2$bird3, na.rm = TRUE) + mean(newdata2$bird4, na.rm = TRUE) + mean(newdata2$bird5, na.rm = TRUE) + mean(newdata2$bird6, na.rm = TRUE) + mean(newdata2$bird7, na.rm = TRUE) + mean(newdata2$bird8, na.rm = TRUE) + mean(newdata2$bird9, na.rm = TRUE))/9 

这个方法的问题在于我无法得到关于Mean,median,min,max,sd等的精彩摘要,除非我为那些创建一个新函数。

总结一下,我的问题是:

1)我的功能中是否存在明显错误,这些错误给出的结果与SAS和SPSS不同(SAS和SPSS结果相同)?我是R的新手,但我在其他Stack线程上找到了这些函数。

2)是否有其他方法可以获得手段和精彩的汇总统计数据?

3)R中的中位数与SAS和SPSS中的中位数相同并不奇怪,为什么会这样?

4)上述哪项功能表明R的良好/不良做法?

5)个体鸟类的手段与SPSS和SAS一致,但是当我将所有鸟类包含在使用rowmeans的函数中但我没有看到任何错误时,会出现问题。

由于结果不一致,我对我的项目依赖上述功能犹豫不决。我认为这可能是一个舍入错误,但这并不能解释我将SPSS文件导入R中的差异(我认为),R中单个鸟类的平均值与SAS和SPSS中单个鸟类的平均值相匹配。我也将这个方法用于其他变量,所以我希望我能在R中准确地工作。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

来自R帮助:

## Compute row and column sums for a matrix:
x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
> x
     x1 x2
[1,]  3  4
[2,]  3  3
[3,]  3  2
[4,]  3  1
[5,]  3  2
[6,]  3  3
[7,]  3  4
[8,]  3  5
rowMeans(x, na.rm = TRUE)
[1] 3.5 3.0 2.5 2.0 2.5 3.0 3.5 4.0
colMeans(x, na.rm = TRUE)
x1 x2 
3  3 

可能colMeans是要走的路