r - 在R中找不到中位数
问题描述
我有一张桌子,分为身高和性别。我能够找到整个数据的中位数,但不知道如何找到各个组的中位数。谁能帮忙?
解决方案
在基础 R 中,您可以使用aggregate
:
aggregate(d$Height, by = list(d$sex), FUN = median)
Group.1 x
1 F 49
2 M 65
使用dplyr
包:
library(dplyr)
d %>% group_by(sex) %>% summarise(Median = median(Height))
# A tibble: 2 x 2
sex Median
<fct> <int>
1 F 49
2 M 65
使用data.table
包:
library(data.table)
setDT(d)
d[, .(Height = median(Height)), by = .(sex)]
sex Height
1: F 49
2: M 65
可重现的例子
d <- data.frame(Height = sample(1:100, 100, replace = TRUE),
sex = sample(c("M","F"),100, replace = TRUE))
推荐阅读
- python - 将笨拙的数组 JaggedArray 内容和偏移量组合成嵌套的 JaggedArray
- javascript - Javascript Pennies 舍入机制到最接近 5 美分的倍数
- html - 被奇怪的网址弄糊涂了,尤其是开头中的“ai”一词
- python-3.x - 使用带有变量和单引号的 subprocess.call
- ruby-on-rails - 无法启动 memcached
- cryptography - 轻量级加密的性能测试
- django - Django 中的 .add() 方法未添加多对多关系条目
- flutter - NestedScrollView 标头中的 Flutter SliverAppbar 不会像在 CustomScrollView 中那样拉伸和缩放
- javascript - 使用 math.min 在对象列表中查找最小数字的最佳方法?
- c++ - Windows 上的 Qt 和 cmake:LNK2019 未解决的外部符号错误