给定数据框中数值变量名称的向量,我需要计算每个变量的均值和标准差。例如,给定 mtcars
数据集和以下变量名称向量:
vars_to_transform <- c("mpg", "disp")
我希望得到以下结果:
我想到的第一个解决方案如下:
library(dplyr)
library(purrr)
data("mtcars")
vars_to_transform <- c("mpg", "disp")
vars_to_transform %>%
map_dfr( function(x) { c(variable = x, avg = mean(mtcars[[x]], na.rm = T), sd = sd(mtcars[[x]], na.rm = T)) } )
结果如下:
如您所见,所有返回的变量都是字符,但我希望 avg
和 sd
有数字。
有办法解决这个问题吗?或者还有比这更好的解决方案吗?
附言
我正在使用 purr
0.3.4
最佳答案
select
->pivot
->group
->summarise
似乎过于复杂了。
mtcars %>%
select(all_of(vars_to_transform)) %>%
pivot_longer(everything()) %>%
group_by(name) %>%
summarise(
mean = mean(value),
sd = sd(value)
)
# A tibble: 2 x 3
name mean sd
<chr> <dbl> <dbl>
1 disp 231. 124.
2 mpg 20.1 6.03
https://stackoverflow.com/questions/70442149/
相关文章:
javascript - 如何在项目的特定子目录上运行 prettier?
vue.js - 有没有办法在 Vue 3 Composition API 中的随机组件之间共享 r
typescript - TypeScript 中的泛型类型参数 T 是什么?
python - 压缩文件 : Check for correct Password
nuget - nuget 的 GitHub Packages 服务身份验证问题
google-cloud-platform - 关于 Google Cloud Pub/Sub 消息