本节来介绍dplyr中的行选择函数slice,此函数可轻松的按照索引对行进行处理
library(tidyverse)
iris %>% as_tibble() %>% slice(1:3)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
<dbl> <dbl> <dbl> <dbl> <fct>
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
取前3行
filter(iris,row_number() == 1:3L)
取第三行至最后一行
iris %>% as_tibble() %>% slice(3:n())
取第5行至最后一行
filter(iris,between(row_number(),5,n()))
取最后一行
iris %>% as_tibble() %>% slice(n())
取前5行
iris %>% as_tibble() %>% slice_head(n = 5)
取最后5行
iris %>% as_tibble() %>% slice_tail(n = 5)
将第一行至第四行从数据中剔除
iris %>% as_tibble %>% slice(-(1:4))
取出Sepal.Width列最小的一行
iris %>% as_tibble() %>% slice_min(Sepal.Width,n=1)
iris %>% as_tibble() %>% slice_max(Sepal.Width,n=3)
若有重复值加 with_ties=FALSE 只取一行
mtcars %>% slice_min(cyl,n=1,with_ties=FALSE)
slice_sample 随机无重复抽样
iris %>% as_tibble() %>% slice_sample(n = 5)
slice_sample 随机有重复抽样
iris %>% as_tibble() %>% slice_sample(n = 5, replace = TRUE)
每组只取2行
iris %>% group_by(Species) %>% slice_head(n = 2)
pro=0.5 表示按分组只取每组内一半的数据
iris %>% group_by(Species) %>% slice_head(prop = 0.5)
保留全部数据
iris %>% group_by(Species) %>%
slice(which.max(Sepal.Length)
iris数据集有150行,上述代码只取75行
欢迎关注我的公众号
R语言数据分析指南
本公众号主要分享数据可视化的一些经典案例及一些生信相关的知识供大家学习