📜  Dplyr – 在 R 中使用变量名对多列进行分组(1)

📅  最后修改于: 2023-12-03 15:14:47.746000             🧑  作者: Mango

Dplyr – 在 R 中使用变量名对多列进行分组

在 R 中,Dplyr 是一个非常常用的数据处理包。它提供了一个简单但强大的语法来操作数据框。其中,按照多个变量对数据进行分组是常见的操作。下面将介绍如何使用变量名对多列进行分组。

使用group_by函数对变量进行分组

Dplyr 中的 group_by() 函数可以按照用户指定的变量对数据进行分组。例如,以下代码将对 mtcars 数据集中的 cylgear 两列进行分组:

library(dplyr)

mtcars %>%
  group_by(cyl, gear) %>%
  summarize(mean_hp = mean(hp), mean_mpg = mean(mpg)) 

这里使用了管道运算符 %>% 将多个数据操作连接在一起。 group_by() 函数接受多个变量名并将数据按照这些变量名进行分组。之后,使用 summarize() 函数来计算每个组的汇总统计量,例如该代码中计算了每个组的平均马力和平均油耗。

动态指定变量名

有时,用户需要动态指定需要分组的变量名。例如,用户从文件名中读取变量名或者使用了变量名的字符向量。以下代码展示了如何以字符向量的形式指定变量名:

group_vars <- c("cyl", "gear")

mtcars %>%
  group_by(across(all_of(group_vars))) %>% 
  summarize(mean_hp = mean(hp), mean_mpg = mean(mpg)) 

这里使用了 across() 函数来对多个列进行操作。 all_of() 函数将字符向量转化为变量名,使得可以按照用户指定的变量名进行分组。需要注意的是,在这种情况下,变量名必须使用引号括起来。

结论

使用 Dplyr,可以非常方便地按照多个变量对数据进行分组。无论是直接指定变量名还是使用字符向量指定变量名,都可以轻松实现数据分组。您可以查看 Dplyr 的文档来了解更多详细信息。