You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将detect_time_anomalies的输出结果保存至列表以便提取

问题

我用bupar和daqapo包处理hospital数据集,转成activitylog后运行detect_time_anomalies(),得到了包含异常统计、tibble表格等的输出。现在想把这些所有输出内容保存到一个列表里,方便后续提取信息。

我的代码如下:

library(bupar)
library(daqapo)
hospital<-hospital
hospital %>%
  rename(start = start_ts,
         complete = complete_ts) -> hospital
hospital %>%
  convert_timestamps(c("start","complete"), format = dmy_hms) -> hospital
hospital %>%
  activitylog(case_id = "patient_visit_nr",
              activity_id = "activity",
              resource_id = "originator",
              timestamps = c("start", "complete")) -> hospital
hospital %>%
  detect_time_anomalies()

运行后的输出:

*** OUTPUT ***
For 5 rows in the activity log (9.43%), an anomaly is detected.
The anomalies are spread over the activities as follows:
# A tibble: 3 × 3
  activity      type                  n
  <chr>         <chr>             <int>
1 Registration  negative duration     3
2 Clinical exam zero duration         1
3 Trage         negative duration     1
Anomalies are found in the following rows:
# Log of 10 events consisting of:
3 traces 
3 cases 
5 instances of 3 activities 
5 resources 
Events occurred from 2017-11-21 11:22:16 until 2017-11-21 19:00:00 
 
# Variables were mapped as follows:
Case identifier:        patient_visit_nr 
Activity identifier:        activity 
Resource identifier:        originator 
Timestamps:     start, complete 

# A tibble: 5 × 10
  patient_visit_nr activity      originator start               complete            triagecode specialization .order durat…¹ type 
             <dbl> <chr>         <chr>      <dttm>              <dttm>                   <dbl> <chr>           <int>   <dbl> <chr>
1              518 Registration  Clerk 12   2017-11-21 11:45:16 2017-11-21 11:22:16          4 PED                 1  -23    nega…
2              518 Registration  Clerk 6    2017-11-21 11:45:16 2017-11-21 11:22:16          4 PED                 2  -23    nega…
3              518 Registration  Clerk 9    2017-11-21 11:45:16 2017-11-21 11:22:16          4 PED                 3  -23    nega…
4              520 Trage         Nurse 17   2017-11-21 13:43:16 2017-11-21 13:39:00          5 URG                 4   -4.27 nega…
5              528 Clinical exam Doctor 1   2017-11-21 19:00:00 2017-11-21 19:00:00          3 TRAU                5    0    zero…
# … with abbreviated variable name ¹​duration
解决方案

detect_time_anomalies()函数的返回值本身就是一个包含所有输出信息的列表,你只需要把它赋值给一个变量即可。修改后的代码如下:

library(bupar)
library(daqapo)

# 处理数据集并转换为activitylog
hospital <- hospital %>%
  rename(start = start_ts, complete = complete_ts) %>%
  convert_timestamps(c("start","complete"), format = dmy_hms) %>%
  activitylog(case_id = "patient_visit_nr",
              activity_id = "activity",
              resource_id = "originator",
              timestamps = c("start", "complete"))

# 将异常检测结果保存到列表中
time_anomalies <- detect_time_anomalies(hospital)

提取列表中的内容

保存后,你可以通过列表索引或名称提取所需信息:

  • 提取异常统计文本:time_anomalies$info
  • 提取按活动分类的异常统计表格:time_anomalies$anomaly_summary
  • 提取包含异常的事件行:time_anomalies$anomalies

比如查看异常事件表格:

print(time_anomalies$anomalies)

这样就能直接获取你需要的各类信息,无需额外处理输出内容。

内容的提问来源于stack exchange,提问作者firmo23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:35:25