📅  最后修改于: 2023-12-03 15:24:21.192000             🧑  作者: Mango
在 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 个分类变量和一个连续变量的数据集。
接下来,我们可以使用 group_by()
函数将数据按 2 个变量进行分组。
# 按 group1 和 group2 进行分组
df_grouped <- df %>% group_by(group1, group2)
df_grouped
这里我们按 group1
和 group2
进行分组,并将结果存储在 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 个变量,即 group1
和 group2
被用作分组依据。
现在,我们已经将数据按 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 个变量进行分组,并对分组后的数据执行操作。这是数据分析和可视化中常用的操作之一,在实际使用中可以根据具体需求进行调整。