R语言如何按指定多条件对数据框不同列完成过滤筛选
R语言多条件过滤操作实现方案
你可以选择以下任意一种方式完成过滤,2000行数据属于极小体量,两种方案的运行效率都足够:
方法1:Base R原生实现(无需加载第三方包)
直接通过逻辑向量取子集完成过滤:
# 构造过滤规则 filter_rule <- (df$service == "SN" & df$Hours > 4) | (df$service == "PT" & df$Hours > 6) # 执行过滤 filtered_df <- df[filter_rule, ]
方法2:dplyr包实现(可读性更高,适合后续数据处理流程衔接)
library(dplyr) filtered_df <- df %>% filter( (service == "SN" & Hours > 4) | (service == "PT" & Hours > 6) )
如果需要输出和你给出的示例完全一致的格式,可以追加字段处理逻辑:
library(dplyr) formatted_df <- filtered_df %>% # 处理姓名首字母大写并加后缀点 mutate( dr = paste0(toupper(substr(dr, 1, 1)), substr(dr, 2, nchar(dr)), "."), service = paste0(service, ".") ) %>% # 重命名列名 rename( "Dr." = dr, "Service." = service )
输出formatted_df即可得到你期望的结果。
内容的提问来源于stack exchange,提问作者rnovice
相关产品推荐
相关产品推荐

