R的资料处理很常用的package“dplyr” 里面select()常被用来做资料的删减
select() 的用法
以mtcars资料集为例
1 2 3 4 5
| head(mtcars,3) # mpg cyl disp hp drat wt qsec vs am gear carb # Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 # Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 # Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
|
删减不需要的资料栏位
假设不需要用到 mpy,hp这两个栏位
1 2 3 4 5 6
| mtcars1=select(mtcars,-c("mpg","hp")) head(mtcars1,3) # cyl disp drat wt qsec vs am gear carb # Mazda RX4 6 160 3.90 2.620 16.46 0 1 4 4 # Mazda RX4 Wag 6 160 3.90 2.875 17.02 0 1 4 4 # Datsun 710 4 108 3.85 2.320 18.61 1 1 4 1
|
假设需要mpg到wt的资料,但是不需要cyl和hp这两个栏位
1 2 3 4 5 6
| mtcars2=select(mtcars,mpg:wt,-c("cyl","hp")) head(mtcars2,3) # mpg disp drat wt # Mazda RX4 21.0 160 3.90 2.620 # Mazda RX4 Wag 21.0 160 3.90 2.875 # Datsun 710 22.8 108 3.85 2.320
|
select() 的子函数
select 还有很多非常好用的子函数
- starts_with();
- ends_with();
- contains();
- matches();
- num_range();
- one_of();
- everything()
找出栏位中所有以“c”开头的columns
1 2 3 4 5 6
| mtcars3 = select(mtcars,starts_with("c")) head(mtcars3,3) # cyl carb # Mazda RX4 6 4 # Mazda RX4 Wag 6 4 # Datsun 710 4 1
|
删掉栏位名称中有“ar”的columns
1 2 3 4 5 6 7
| mtcars4 = select(mtcars,-contains("ar")) head(mtcars4,3) # 原始 mpg cyl disp hp drat wt qsec vs am gear carb # mpg cyl disp hp drat wt qsec vs am # Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 # Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 # Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1
|
可以看出“ar”是一整个的字符串,所以字母顺序需要注意,有“ra”就被保留下来了
其他的几个子函数的用法也类似starts_with()
Author:
SiQing
License:
Copyright (c) 2019 CC-BY-NC-4.0 LICENSE