【发布时间】:2021-07-10 19:12:50
【问题描述】:
我一直在尝试解决教科书中的一个练习,我面临的挑战是计算工业过程的连续阶段之间的不同事件。
流程相关信息: 让测试对象经历A、B、C三个阶段的过程,第一阶段是A,第二阶段是B,最后是C;测试对象可以在阶段 A 或 B 放弃过程,然后从点 A 重新开始,每次过程发生时,都会创建一个数据集,其中包含测试对象的 IDENTIFICATION、该阶段发生的 TIMESTAMP 和唯一的 VISIT_CODE 在任何阶段,测试对象都可能触发“ALERT”,这将与 TIMESTAMP、ALERT_CODE 和测试对象 IDENTIFICATION 一起记录。
要计算什么: 我必须在 R 中创建一个代码来计算测试对象在阶段 A 和 B 之间、阶段 B 和 C 之间生成了多少警报,最后在 C 之后生成了多少警报。请注意,测试对象可能在某个时候放弃该过程,稍后从 A 点重新开始。
教科书给出了提示: “仔细查看测试对象当前所处的阶段,然后确定 ALERT 是否是从 A 阶段和 B 阶段之前生成的,以及测试对象是否在 B 阶段之后和 C 阶段之前触发了 ALERT,但请记住如果测试对象在 A 阶段放弃并触发 ALERT,如果该 ALERT 的 TIMESTAMP 小于他们在 A 阶段的下一次尝试,那么它应该在 A 阶段之后被记为 ALERT"
作为另一个提示,教科书显示阶段 C 之后的 ALERTS 只有 1 并且它是由测试对象 W-6 使用 ALTER_CODE AYUJ-3915716168 触发的。 数据集是:
阶段过程
TableA<-tribble(~STAGE, ~TEST_SUBJECT,~TIMESTAMP,~VISIT_CODE,
"A", "XYU-1", "10", "BKO",
"A", "XYU-1", "15", "JUJD",
"B", "XYU-1", "20", "DUDH",
"A", "FF-09", "25", "KSIWJD",
"B", "FF-09", "30", "AJAKAM",
"C", "FF-09", "35", "ZISKS",
"A", "UU-89", "40", "NNXJD",
"B", "UU-89", "45", "DDUWO",
"A", "I-44", "50", "JIWIW",
"A", "W-6", "55", "SHDN",
"B", "W-6", "60", "IWOLS",
"C", "W-6", "65", "JDDD",
"A", "U-90", "70", "DJDKSMS",
"B", "U-90", "75", "NDJSM",
"A", "T-87", "80", "DNDJDK")
警报数据集
TableB<-tribble(~TEST_SUBJECT,~TIMESTAMP,~ALERT_CODE,
"XYU-1", "11", "AYUJ-151571406",
"XYU-1", "12", "AYUJ-487008829",
"XYU-1", "28", "AYUJ-211990388",
"FF-09", "32", "AYUJ-4177221842",
"W-6", "56", "AYUJ-1300211351",
"W-6", "63", "AYUJ-3014305494",
"I-44", "67", "AYUJ-4454800551",
"U-90", "73", "AYUJ-1079921935",
"U-90", "76", "AYUJ-3348911727",
"U-90", "79", "AYUJ-2381219626",
"T-87", "82", "AYUJ-4778326278",
"W-6", "89", "AYUJ-3915716168")
解决方案:
教科书指出这个问题的正确解决方案是:
| Alerts between Stages A & B including alerts from test subjects that abandoned the process in the attempt nth at stage A | Alerts between Stages B & C including alerts from test subjects that abandoned the process in the attempt nth at stage B | Alerts after stage C |
|---|---|---|
| AYUJ-151571406 | AYUJ-211990388 | AYUJ-3915716168 |
| AYUJ-487008829 | AYUJ-3014305494 | |
| AYUJ-1300211351 | AYUJ-3348911727 | |
| AYUJ-1079921935 | AYUJ-4177221842 | |
| AYUJ-4778326278 | AYUJ-2381219626 | |
| AYUJ-4454800551 |
我做了什么? :我已经尝试通过 TEST_SUBJECT 和阶段和时间戳对数据进行分组和“加入”以进行计数,但我发现很难设置条件以在阶段之间进行代码计数事件,因为我发现很难关联哪些事件发生了根据测试对象和阶段在每个时间跨度之前和之后放置。
非常感谢所有有才华和酷的人的帮助或建议
【问题讨论】:
-
警报表中的示例数据似乎缺少一列?
-
您好!感谢您指出我已修复它!非常感谢
标签: r algorithm count data-science data-wrangling