r - 计算数据框中给定变量的均值和标准差

给定数据框中数值变量名称的向量,我需要计算每个变量的均值和标准差。例如,给定 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)) } )

结果如下:

如您所见,所有返回的变量都是字符,但我希望 avgsd 有数字。

有办法解决这个问题吗?或者还有比这更好的解决方案吗?

附言 我正在使用 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/

相关文章:

go - Golang 中的全局变量

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 消息

regex - 只查找多行 C 注释,不查找单行 C 注释

reactjs - 为什么 npm uninstall -g create-react-app 失败

android - 在 Jetpack Compose 中调用分页数据的刷新方法无法正常工作