如何在BupaR中按手术操作ops_5分组生成性能分析tibble?
按
ops_5分组生成性能分析tibble的解决方案 process_matrix()这类流程分析函数(通常来自bupaR包)无法直接识别dplyr::group_by()的分组上下文,所以直接链式调用不会生效,你可以用以下两种方法实现分组分析:
方法1:用group_map()遍历分组处理
通过dplyr::group_map()逐个处理每个ops_5分组的子日志,再合并结果:
log %>% group_by(ops_5) %>% group_map(~ process_matrix(.x, performance())) %>% bind_rows(.id = "ops_5")
group_map()会遍历每个分组,.x指代当前分组的事件日志bind_rows(.id = "ops_5")会把分组标识ops_5添加到最终的tibble中,方便区分各分组结果
方法2:拆分日志后循环处理
如果偏好显式逻辑,可先拆分日志再逐个计算:
# 按ops_5拆分事件日志为列表 split_logs <- split(log, log$ops_5) # 遍历列表生成每个分组的性能矩阵 result_list <- lapply(split_logs, function(sub_log) { process_matrix(sub_log, performance()) }) # 合并所有分组结果并保留分组标识 final_result <- bind_rows(result_list, .id = "ops_5")
核心原因
bupaR的流程分析函数默认针对完整事件日志计算,不会自动适配dplyr的分组状态,必须显式对每个分组单独执行分析,才能得到各ops_5对应的独立性能分析tibble。
内容的提问来源于stack exchange,提问作者Peter Hahn
相关产品推荐
相关产品推荐

