是否有 R 函数可以让我们对数据集中的多个变量进行汇总函数?或获取描述性统计数据

问题描述 投票:0回答:2

我正在尝试从两组之间的多个变量中获取描述性统计数据。到目前为止,我能找到如何使用 so 的唯一方法是使用 group by then summarize 函数。但要在所有变量上运行需要做很多工作,如下所示。有没有更干净的方法来做到这一点

grouped_summary <- my_data %>% 
  group_by(group) %>% 
  summarize(mean_var1 = mean(variable1, na.rm = TRUE), 
  median_var1 = median(variable1, na.rm = TRUE), 
  sd_var1 = sd(variable1, na.rm = TRUE), 
  mean_var2 = mean(variable2, na.rm = TRUE), 
  median_var2 = median(variable2, na.rm = TRUE),
  sd_var2 = sd(variable2, na.rm = TRUE), 
  count = n())
r group-by statistics tidyverse summary
2个回答
0
投票

正如

jon spring
所指出的,请查看 tidyverse 文档。在你的情况下,它可能看起来像

library(tidyverse)
my_data <- tibble(
  group = c("group_1", "group_1", "group_2", "group_2"),
  variable1 = c(1,2,3,4),
  variable2 = c(5,6,7,8)
)

my_data %>% 
  group_by(group) %>% 
  summarise(across(everything(), 
                   list(mean = mean, sd = sd), 
                   .names = "{.col}_{.fn}")
            )

0
投票

是的,在 R 中,您可以使用

dplyr
包来实现这一点。
summarize()
函数用于计算数据集中变量的汇总统计数据。如果您想同时将其应用于多个变量,可以使用
across()
函数。这是一个例子:

图书馆(dplyr)

假设“数据”是您的数据框

摘要数据<- data %>% 总结(跨(c(var1,var2,var3),列表(平均值=平均值,sd = sd,中位数=中位数)))

此代码计算

var1
数据框中变量
var2
var3
data
的平均值、标准差和中位数。您可以根据需要自定义汇总功能。

此外,如果您正在寻找描述性统计数据,您可以使用

summary()
函数来快速概览数据框中每个变量的集中趋势和分布。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.