美文网首页
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