如何使用 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 按多个条件进行过滤