ITPub博客

首页 > > > tidyfst中的行选择:filter_dt

tidyfst中的行选择:filter_dt

作者:浪花小雨滴 时间:2020-03-16 08:32:13 0 删除 编辑

作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。


对行进行过滤的操作,相信对于大部分做数据操作的用户并不陌生。根据条件筛选行,是非常重要的一个操作。为了再次测试tidyfst中的筛选函数filter_dt,这里用更多的例子进行尝试。

例子参考了微信推送的例子(R语言统计与绘图:数据处理dplyr—行筛选),直接加“_dt”后缀无缝对接tidyfst。

  library(tidyfst)
  library(survival)  # 加载数据集所需的包
  
  data("colon") # 加载数据集
  
  # 单条件筛选
  filter_dt(colon, sex == 1)  # 筛选colon数据集中男性患者
  
  
  # 多条件筛选
  # 筛选≥50岁的男性患者
  filter_dt(colon, sex == 1 & age >= 50)
  
  # 筛选男性或年龄≥50岁的患者
  filter_dt(colon, sex == 1 | age >= 50)
  
  # 筛选age中大于age平均值的行
  colon %>% filter_dt(age > mean(age, na.rm = TRUE)) 
  
  # 筛选男性中age大于age平均值的行
  colon %>% filter_dt(sex == 1 & age > mean(age, na.rm = TRUE))
  
  # 筛选 50 ≤ age < 60的患者
  filter_dt(colon, age >= 50 & age < 60)
  # 筛选 50 ≤ age ≤ 60的患者
  colon %>% filter_dt(between(age,50,60))
  
  # 筛选肿瘤分化程度differ为1和2,且性别为男性的行
  colon %>% filter_dt(differ %in% c(1,2), sex == 1)
  
  # 筛选不同性别中年龄大于各自性别的年龄平均值的行  
  colon %>% 
    group_dt(
      by = sex,
      filter_dt(age > mean(age, na.rm = TRUE))
    )

全部测试成功。

原文作者:;如有侵权,请联系管理员删除。

上一篇: R语言-因子
下一篇: Hbase 编写mapreduce
请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    40024