【发布时间】:2021-06-19 01:07:52
【问题描述】:
大家好,是否可以将均值和标准差合并到一个列中?
例如,如果我有以下代码;
data %>%
select(age, gender) %>%
group_by(gender) %>%
summarise(mean.age = mean(age), sd.age = sd(age)
这会将每个性别的平均年龄和标准差显示为 2 个单独的列。
如何让它显示为一列,格式类似于“age = 18 ± 2”?
【问题讨论】:
大家好,是否可以将均值和标准差合并到一个列中?
例如,如果我有以下代码;
data %>%
select(age, gender) %>%
group_by(gender) %>%
summarise(mean.age = mean(age), sd.age = sd(age)
这会将每个性别的平均年龄和标准差显示为 2 个单独的列。
如何让它显示为一列,格式类似于“age = 18 ± 2”?
【问题讨论】:
您可以将这两个值粘贴在一起。
library(dplyr)
data %>%
group_by(gender) %>%
summarise(age = paste(round(mean(age),2), round(sd(age),2) sep = ' ± '))
例如mtcars 数据 -
mtcars %>%
group_by(cyl) %>%
summarise(age = paste(round(mean(mpg), 2), round(sd(mpg), 2), sep = ' ± '))
# cyl age
# <dbl> <chr>
#1 4 26.66 ± 4.51
#2 6 19.74 ± 1.45
#3 8 15.1 ± 2.56
【讨论】:
我们可以使用glue
library(dplyr)
library(glue)
data %>%
group_by(gender) %>%
summarise(age = glue('{round(mean(age), 2)} ± {round(sd(age), 2)}')
mtcars 的可重现示例
mtcars %>%
group_by(cyl) %>%
summarise(age = glue('{round(mean(mpg), 2)} ± {round(sd(mpg), 2)}'))
# A tibble: 3 x 2
cyl age
<dbl> <glue>
1 4 26.66 ± 4.51
2 6 19.74 ± 1.45
3 8 15.1 ± 2.56
【讨论】: