r - R中的中值 - 返回四舍五入的数字
问题描述
我有一个数据表,其中我根据它们所属的集群标记了行,并计算了行列值的平均值。我想为每个集群选择中间行。
例如,只看一个,我想使用:
median(as.numeric(as.vector(subset(df,df$cluster == i )$avg)))
我知道
> as.numeric(as.vector(subset(df,df$cluster == i )$avg))
[1] 48.11111111 47.77777778 49.44444444 49.33333333 47.55555556 46.55555556 47.44444444 47.11111111 45.66666667 45.44444444
然而,中位数是
> median(as.numeric(as.vector(subset(df,df$cluster == i )$avg)))
[1] 47.5
我想通过将返回的中值与列中的平均值进行匹配来找到中值记录,但是对于这个返回值是不可能的。
我发现了一些关于使用 mean 函数舍入的文档和问题,但不幸的是,这似乎并不适用。
我也可以限制数据的小数位,但有些记录会太接近,如果四舍五入到小数点后重复将很常见。
解决方案
有一种更简单的方法可以做到这一点:使用 dplyr
library(dplyr)
df%>%
group_by(cluster)%>%
summarise(Median=median(avg))
推荐阅读
- csv - Scilab如何用矩阵中的点替换逗号
- html - 带有 content="noindex,nofollow" 的元标记有什么影响
- forms - 如何在 Adobe Livecycle 中正确显示此文本字段输出?
- r - pivot_wider:如何为非唯一值添加行?
- python - 使用python解码zip文件中的每个文件
- angular - 如何更改产品的数量
- javascript - 如何在移动设备中安装 TradingView 市场数据小部件?
- gradle - maven bom 的 Gradle 7.0 版本目录
- python - 雷达/极地图标签与图自身相交
- javascript - 如何在 React Native 步进器中添加自定义图标