美文网首页
tidyverse按列提取子集之玩转select

tidyverse按列提取子集之玩转select

作者: 小梦游仙境 | 来源:发表于2020-06-12 17:56 被阅读0次

    来自https://www.datanovia.com/en/lessons/select-data-frame-columns-in-r/学习笔记。

    就是从一个数据框中提取子集,是按照什么提取呢?是按照来提取!主要有pullselectselect_if,还有一些辅助帮助定位的函数如starts_with(), ends_with(), contains(), matches(), one_of()这些函数!最主要的就是select函数!

    曾经记录过tidyverse的数据变换,如下:

    tidyverse数据处理包

    tidyverse实用函数inner_join等

    Reshape2包-长宽数据转换之-melt和dcast函数

    Required packages

    library(tidyverse)
    

    Demo dataset

    my_data <- as_tibble(iris)
    my_data
    
    image.png

    Extract column values as a vector

    my_data %>% pull(Species)
    

    [图片上传失败...(image-16a687-1591955739591)]

    Extract columns as a data table

    1.Select column by position

    my_data %>% select(1:3)
    
    image-20191213224705669
    my_data %>% select(1,3)
    
    image-20191213224620714

    2.Select columns by names

    my_data %>% select(Sepal.Length, Petal.Length)
    
    image-20191213224748271
    my_data %>% select(Sepal.Length:Petal.Length)
    
    image-20191213224834865
    There are several special functions that can be used inside select(): starts_with(), ends_with(), contains(), matches(), one_of(), etc.

    先看一下这个数据的列名

    > colnames(my_data)
    [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"   
    
    my_data %>% select(starts_with("Petal"))
    
    image-20191213225005459
    my_data %>% select(ends_with("Width"))
    
    image-20191213225039105
    my_data %>% select(contains("etal"))
    
    image-20191213225102350
    my_data %>% select(matches(".t."))#'.'点号用来匹配换行符以外的任意一个字符
    
    image-20191213225129916
    my_data %>% select(one_of(c("Sepal.Length", "Petal.Length")))
    
    image-20191213225203634

    Select column based on a condtion

    my_data %>% select_if(is.numeric)
    
    image-20191213231701684

    Remove columns

    1.drop columns by position

    my_data %>% select(-Sepal.Length, -Petal.Length)
    
    image-20191213225353696
    my_data %>% select(-(Sepal.Length:Petal.Length))
    

    [图片上传失败...(image-a6ebb1-1591955739592)]

    my_data %>% select(-starts_with("Petal"))
    
    image-20191213225641398

    2.drop columns by position

    > colnames(my_data)
    [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"  
    
    my_data %>% select(-1)
    
    image-20191213230424304
    my_data %>% select(-(1:3))
    
    image-20191213230451193
    my_data %>% select(-1, -3)
    
    image-20191213230805506

    上面就是提取列的全部操作的示例了,记录下来,下次用的时候可以根据示例的结果很方便地查找到函数

    相关文章

      网友评论

          本文标题:tidyverse按列提取子集之玩转select

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