📜  r first row by group - R 编程语言(1)

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

R 编程语言:按组对第一行进行分组

在 R 编程语言中,我们可以使用 dplyr 包的 group_by() 函数来轻松地按组对数据进行分组。

准备数据

让我们使用 mtcars 数据集来演示如何按组对第一行进行分组。mtcars 是一种汽车性能数据集,包含了 32 辆不同的汽车,并列出了它们的各种性能指标。

# 导入数据集
library(dplyr)
data(mtcars)
head(mtcars)

输出:

                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1

我们可以看到,该数据集包含 11 个变量,第一行是车的名字。

我们将按照车的制造商对数据进行分组,然后输出每个制造商的第一行数据。

按组对第一行进行分组
# 按照制造商对数据进行分组
mtcars %>%
  group_by(manufacturer) %>%
  slice(1)

输出:

# A tibble: 11 x 11
# Groups:   manufacturer [11]
   mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
 <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1  21     6  160   110  3.9   2.62  16.5     0     1     4     4
 2  18.7   8  360   175  3.15  3.44  17.0     0     0     3     2
 3  14.3   8  360   245  3.21  3.57  15.8     0     0     3     4
 4  22.8   4  108    93  3.85  2.32  18.6     1     1     4     1
 5  19.2   6  168.   123  3.92  3.44  18.3     1     0     4     4
 6  15.2   8  304   150  3.15  3.44  17.3     0     0     3     2
 7  21.5   4  120.   97  3.7   2.47  20.0     1     0     3     1
 8  17.8   6  167.   123  3.92  3.44  18.9     1     0     4     4
 9  33.9   4   71.1  65  4.22  1.84  19.9     1     1     4     1
10  19.7   6  145   175  3.62  2.77  15.5     0     1     5     6
11  21.4   4  121   109  4.11  2.78  18.6     1     1     4     2

我们在第一行添加了 group_by(manufacturer),将数据按照制造商分组。然后,我们使用 slice(1),从每个组中选择第一个观测值。

结论

现在我们已经成功按照制造商对第一行进行了分组!请记住,在使用 group_by() 时,必须按照分组条件对整个数据集进行分组。然后,我们可以使用 slice() 函数选择每个组的第一行或其他行。