📜  如何在 r 中按 2 个变量分组 (1)

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

如何在 R 中按 2 个变量分组

在 R 语言中,我们经常需要按 2 个或多个变量进行分组来进行数据分析和可视化。本篇文章将介绍如何在 R 中按 2 个变量进行分组。

生成数据

首先,我们需要生成一些示例数据,其中包含 2 个变量。

library(tidyverse)

# 生成示例数据
set.seed(123)
df <- tibble(
  group1 = rep(c("A", "B"), each = 5),
  group2 = rep(c("X", "Y", "Z"), times = 3),
  value = rnorm(10)
)

df

生成的数据示例如下所示:

# A tibble: 10 × 3
   group1 group2  value
   <chr>  <chr>  <dbl>
 1 A      X     -0.560
 2 A      Y     -0.230
 3 A      Z      1.56 
 4 A      X      0.070
 5 A      Y      0.129
 6 B      Z      1.72 
 7 B      X      0.461
 8 B      Y     -1.27 
 9 B      Z     -0.687
10 B      X     -0.446

可以看到,这是一个包含 2 个分类变量和一个连续变量的数据集。

按 2 个变量进行分组

接下来,我们可以使用 group_by() 函数将数据按 2 个变量进行分组。

# 按 group1 和 group2 进行分组
df_grouped <- df %>% group_by(group1, group2)

df_grouped

这里我们按 group1group2 进行分组,并将结果存储在 df_grouped 变量中。运行结果如下所示:

# A tibble: 10 × 3
# Groups:   group1, group2 [6]
   group1 group2  value
   <chr>  <chr>  <dbl>
 1 A      X     -0.560
 2 A      Y     -0.230
 3 A      Z      1.56 
 4 A      X      0.070
 5 A      Y      0.129
 6 B      Z      1.72 
 7 B      X      0.461
 8 B      Y     -1.27 
 9 B      Z     -0.687
10 B      X     -0.446

可以看到,输出中指示了 2 个变量,即 group1group2 被用作分组依据。

对分组后的数据执行操作

现在,我们已经将数据按 2 个变量进行了分组,可以对分组后的数据执行各种操作。

例如,我们可以计算分组后的平均值。

df_mean <- df_grouped %>%
  summarise(mean_value = mean(value))

df_mean

这里使用 summarise() 函数计算每个组的平均值,将结果存储在 df_mean 变量中。运行结果如下所示:

# A tibble: 6 × 3
# Groups:   group1 [2]
  group1 group2 mean_value
  <chr>  <chr>       <dbl>
1 A      X          -0.245
2 A      Y          -0.051
3 A      Z           1.56 
4 B      X           0.007
5 B      Y          -1.27 
6 B      Z           0.518

可以看到,每个组的平均值被计算出来了。

结论

本篇文章介绍了如何在 R 中按 2 个变量进行分组,并对分组后的数据执行操作。这是数据分析和可视化中常用的操作之一,在实际使用中可以根据具体需求进行调整。