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

f3eda63221c51ce72029c78e0bff31c8.png

按行提取子集:选择行、删除行,对行排序。

先创建一个包含重复行的数据框:

set

943e53e21d0c5a24bc53b39a4fee04d8.png

一. 对行排序

用 dplyr 包中的 arrange() 对行排序,默认是递增。

sw_dup 

0bc2c6b2c1118c27f46accf72f57848c.png

若要递减排序,套一个 desc():

sw_dup 

39502e329af84ec422d6f0d769913456.png

二. 删除重复行

用 dplyr 包中的 distinct() 删除重复行(只保留第1个,删除其余)。

sw_dup 

93aeacda442b77f38ee2a741f46f5ea4.png

也可以只根据某些列判定重复:

sw_dup 

c342d8c6ed04fbd620f22b8e45be3402.png

注:默认只返回选择的列,要返回所有列,需要设置参数 .keep_all=TRUE.

三. 删除包含 NA 的行

用 tidyr 包中的 drop_na() 删除所有包含 NA 的行:

sw_dup 

7b218b3d592fe667086caa5cf3f62037.png

也可以只删除某些列包含 NA 的行:

sw_dup 

d8234fdf5022784156f153069cd5a367.png

四. 选择行

  1. 随机选择若干行
  • sample_n(df, m) :随机选择 m 行;
  • sample_frac(df, 0.1) :随机选择 10% 的行。

2. 用 filter() 根据值或条件选择行

sw_dup 

5ab05eda51ddd50d90f69ba6e7ba5d09.png

注:多个条件之间用“,”隔开,相当于 and.

sw_dup 

dac8a2002005a41224afebc67bbafe82.png
sw_dup 

497c05f74bdfd339e7fe4d3c9ab961bf.png

3. 在限定列范围内根据条件选择行

结合变量选择器: vars(), any_vars() (存在), all_vars() (所有)以及类型判断函数 is.numeric(), is.factor() 等,可以在限定列范围内,根据条件选择行。

(1)filter_all(): 在所有这样的列范围内,选择行

选出所有列范围内,存在值包含 "bl" 的行

sw_dup 

dfc708e9c377f3474a1daba16788e79a.png

选出所有列范围内,存在值 >7.5 的行

iris

6815f0d722e30bb8c9e648da896a882c.png

选出所有列范围内,所有值均 >2.4 的行

iris

04e5af4d7b09cd1e642e60f3e8cf1727.png

(2)filter_if():满足条件的列范围内,选择行

从字符列范围内,选择包含 NA 的行:

sw_dup 

ed84969657e046a7c8ddcdc30a74c61d.png

(3)filter_at():在某些列范围内,选择行

在包含 "Sepal" 的列范围内,选择存在值 > 4 的行:

iris

dc340fa0695ac7732d46c4a71580065b.png

参考文献:

  1. Desi Quintans, Jeff Powell. Working in the Tidyverse. http://www.hiercourse.com/
  2. SuZan. Data Wrangling Part 3: Basic and more advanced ways to filter rows. https://suzan.rbind.io/2018/02/dplyr-tutorial-3/
  3. 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、付费专栏及课程。

余额充值