r语言 fread函数参数怎么选择_【R语言】tidyverse之四:选择列

62421b6a7146e0dff71da86b2af296e5.png

用 dplyr 包中的 select() 对数据框做选择列、排序列、重命名列。

一. 用列名选择列

starwars 

af647e967e256c382046e7beb448efe4.png

可以用“:”选择连续的若干列:

starwars 

tidyverse 包提供了一些助手函数,帮助选择变量,常用的有:

9525e7411c6b3f9ef382dd947688913f.png

更多信息查看 ?tidyselect::select_helpers.

iris 

d30c7d872d68d24787f6a03bcffcf991.png
iris 

fd83d8be786f29647683de449e9c2a26.png
iris 

3772cadaf1583e8a871eb63bb1205581.png

根据正则表达式匹配选择列:

msleep 

5831c259abf9092271c5b0cf62374696.png

二. 根据条件选择列

用 select_if() 可以根据条件(逻辑判断)选择列,例如选择所有数值型的列:

starwars 

94801df928dead3fd4fa21329f2c88b3.png

也可以使用,能够检验某条件并返回 TURE 或 FALSE 的自定义函数:

less_than_500 

27ad3cb05a71ae0e8405c4af9231cc38.png

实现上述选择,更简单的做法是用“~”表示的匿名函数:

iris

结合 n_distinct() 选择唯一值数目满足某条件的列:

msleep 

6e41bd9c74007e1838d9655aa796e3cf.png

三. 对列排序

列是根据被选择的顺序排列。

iris %>%
  select(ends_with("Length"), Species, ends_with("Width"))

e3c2f070a3c3cfa72c9cff82f3884f95.png

everything() 选择器返回未被选择的所有列,这在对数据框的列做排序时很有用:

iris %>%
  select(Species, everything())

a245957267af9a0ed939bfbe7a2eed47.png

四. 删除列

用“-”删除列。

iris %>%
  select(-Species, -Petal.Length)

3670c81f3ecb2928ecce9497b8b51174.png
iris %>%
  select(-ends_with("Length"))

9ea5c081cc2d832e2af3c8c374624c04.png
iris %>%   
  select(Species, everything(), -ends_with("Length"))

bb26b8d4ca778b14a528726ff3df8a48.png

注意: -ends_with(...) 要放在 everything() 后面,否则删除的列就全回来了。

五. 重命名列

iris 

face1db8c292da089a32ce1467a88142.png
iris 

f6ee8095d9b8304271f8af7d1cd717b7.png

注:也可以用 janitor 包中的 clean_names() 自动修正列名。

参考文献:

  1. Desi Quintans, Jeff Powell. Working in the Tidyverse. http://www.hiercourse.com/
  2. Garrett Grolemund, Hadley Wickham. R for Data Science. https://r4ds.had.co.nz/

————————————————

转载请注明,禁止用于出版。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值