首页 > > > tidyfst中的行选择:filter_dt
作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(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))
)全部测试成功。
原文作者:;如有侵权,请联系管理员删除。