我的数据包括不同人员(ID
)在每个星期的每一天以及他们在医院或病房
不同区域所花费的时间。我会获得这些时间,以分钟:秒或持续时间
的形式呈现。以下是我的一个数据示例:
ShiftData <- data.frame(ID = c("Nelson", "Nelson", "Nelson", "Nelson", "Nelson",
"Justin", "Justin", "Justin", "Justin", "Justin",
"Nelson", "Nelson", "Nelson", "Nelson", "Nelson",
"Justin", "Justin", "Justin", "Justin", "Justin"),
Day = c("Monday", "Monday", "Monday", "Monday", "Monday",
"Monday", "Monday", "Monday", "Monday", "Monday",
"Tuesday", "Tuesday", "Tuesday", "Tuesday", "Tuesday",
"Tuesday", "Tuesday", "Tuesday", "Tuesday", "Tuesday"),
Ward = c("Gen", "Anaesth", "Front Desk", "PreOp", "Front Desk",
"PreOp", "Front Desk", "Anaesth", "Front Desk", "Gen",
"Gen", "Anaesth", "PreOp", "Front Desk", "Gen",
"Front Desk", "PreOp", "PostOp", "Front Desk", "Anaesth"),
Duration = c("5:35", "4:08", "4:30", "6:33", "4:17",
"15:35", "4:28", "9:37", "18:33", "4:20",
"9:45", "8:28", "6:37", "2:34", "4:27",
"19:35", "4:20", "9:47", "11:33", "4:26"))
我希望首先增加一个列,用于指示每个ID
何时在轮班或值班。在Ward
列中的"前台"
表示人员更改其班次。一个人可能从"前台"
开始,这取决于他们前一天工作的小时数(当前分析不需要进行此计算)。我预计的输出将是:
ShiftData$Shift <- c(1,1,0,2,0,
1,0,2,0,3,
1,1,1,0,2,
0,1,1,0,2)
我的问题与这个问题类似,但当有一个
"前台"
时,我希望是0,之后的任何活动都会逐个计数。
请问我该如何创建它?
我知道我可以使用以下方法为"前台"
包含0:
ShiftData$Shift <- ifelse(ShiftData$Ward=='Front Desk', 0, NA)
但我不确定如何为列的其他部分包括一个连续计数?