美文网首页
R语言基础入门(6) slice根据索引按行操作数据

R语言基础入门(6) slice根据索引按行操作数据

作者: R语言数据分析指南 | 来源:发表于2021-05-25 22:57 被阅读0次

本节来介绍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语言数据分析指南

本公众号主要分享数据可视化的一些经典案例及一些生信相关的知识供大家学习

相关文章

网友评论

      本文标题:R语言基础入门(6) slice根据索引按行操作数据

      本文链接:https://www.haomeiwen.com/subject/zbatsltx.html