繁体   English   中英

通过排除任何给定数字来计算平均值,中位数

[英]Calculate mean, median by excluding any given number

我有一个大小为5000 * 5000的矩阵,其中90%的值为0.是否有现成的解决方案可用于计算排除'0'后该矩阵的平均值,中位数?

一个原油解决方案是将所有0改为NA并使用

 median(x, na.rm=TRUE)

另一个解决方案是手动扫描矩阵并创建另一个包含值的向量,然后计算平均值,中位数等。

还有其他更好的选择吗

如果您想要整体矩阵的中位数和平均值,请尝试以下方法

median(x[x>0])
mean(x[x>0])

如果你想要中位数和平均值

apply(x,1,function(x){mean(x[x>0])})
apply(x,1,function(x){median(x[x>0])})

如果你想要中位数和意味着明智

apply(x,2,function(x){mean(x[x>0])})
apply(x,2,function(x){median(x[x>0])})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM