我正在尝试从两组之间的多个变量中获取描述性统计数据。到目前为止,我能找到如何使用 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())
正如
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}")
)
是的,在 R 中,您可以使用
dplyr
包来实现这一点。 summarize()
函数用于计算数据集中变量的汇总统计数据。如果您想同时将其应用于多个变量,可以使用 across()
函数。这是一个例子:
图书馆(dplyr)
摘要数据<- data %>% 总结(跨(c(var1,var2,var3),列表(平均值=平均值,sd = sd,中位数=中位数)))
此代码计算
var1
数据框中变量 var2
、var3
和 data
的平均值、标准差和中位数。您可以根据需要自定义汇总功能。
此外,如果您正在寻找描述性统计数据,您可以使用
summary()
函数来快速概览数据框中每个变量的集中趋势和分布。