如何使用 dplyr 中的 slice() 函数(附示例)


您可以使用 R 中dplyr包中的slice()函数根据行的整数位置创建行子集。

您可以使用以下方法对数据框中的某些行进行子集化:

方法 1:对特定行进行子集化

 #get row 3 only
df %>% slice(3)

方法 2:对多行进行子集化

 #get rows 2, 5, and 6
df %>% slice(2, 5, 6)

方法 3:对行范围进行子集化

 #get rows 1 through 3
df %>% slice(1:3)

方法 4:按组对行进行子集化

 #get first row by group
df %>%
  group_by(var1) %>%
  slice(1)

以下示例展示了如何将每种方法与以下数据框结合使用:

 #create dataset
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C'),
                 points=c(1, 2, 3, 4, 5, 6, 7),
                 assists=c(1, 5, 2, 3, 2, 2, 0))

#view dataset
df

  team points assists
1 A 1 1
2 to 2 5
3 To 3 2
4 B 4 3
5 B 5 2
6 C 6 2
7 C 7 0

示例 1:特定行的子集

以下代码显示如何使用slice()函数仅选择数据框中的第 3 行:

 #get row 3 only
df %>% slice(3)

  team points assists
1 to 3 2

示例 2:多行的子集

以下代码演示了如何使用slice()函数选择数据框中的多个特定行:

 #get rows 2, 5, and 6
df %>% slice(2, 5, 6)

  team points assists
1 to 2 5
2 B 5 2
3 C 6 2

示例 3:行范围的子集

以下代码显示如何使用slice()函数选择 1 到 3 之间的所有行:

 #get rows 1 through 3
df %>% slice(1:3)

  team points assists
1 A 1 1
2 to 2 5
3 To 3 2

示例 4:按组对行进行子集化

以下代码显示如何使用slice()函数选择某些组的第一行:

 #get first row by group
df %>%
  group_by(team) %>%
  slice(1)

# A tibble: 3 x 3
# Groups: team [3]
  team points assists
       
1 A 1 1
2 B 4 3
3 C 6 2

其他资源

以下教程解释了如何使用 dplyr 执行其他常见功能:

如何使用 dplyr 删除行
如何使用 dplyr 排列行
如何使用 dplyr 按多个条件进行过滤

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注