我有一个大小为5000*5000的矩阵,其中90%的值为0.是否有现成的解决方案可用于计算排除'0'后该矩阵的平均值,中位数?
一个原油解决方案是将所有0改为NA并使用
median(x, na.rm=TRUE)
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是手动扫描矩阵并创建另一个包含值的向量,然后计算平均值,中位数等.
还有其他更好的选择吗
vra*_*js5 11
如果您想要整体矩阵的中位数和平均值,请尝试以下方法
median(x[x>0])
mean(x[x>0])
Run Code Online (Sandbox Code Playgroud)
如果你想要中位数和平均值
apply(x,1,function(x){mean(x[x>0])})
apply(x,1,function(x){median(x[x>0])})
Run Code Online (Sandbox Code Playgroud)
如果你想要中位数和意味着明智
apply(x,2,function(x){mean(x[x>0])})
apply(x,2,function(x){median(x[x>0])})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7382 次 |
| 最近记录: |