问题:下面共享的数据包含两个包含整数格式时间的列,但我必须将其转换为适当的时间格式,即hh:mm,并在时间之间做差异并在分钟内显示
对于Ex:value1:1715中的数据应转换为17:15值2:1709应转换为17:09
一旦转换,应计算差值,如果值2时间超过2分钟,如果是这种情况,则值应返回为1,并且在值2值1延迟小于2分钟的情况下它应该返回0,如果value2-value1返回负值,它也应该返回0,如果差值为0,则应该设置为0。
对于上述数据,值应返回0,因为value2-value 1返回负值。
structure(list(originaldata.df.schedtime = c(1455L, 1640L, 1245L,
1715L, 1039L), originaldata.df.deptime = c(1455L, 1640L, 1245L,
1709L, 1035L)), .Names = c("originaldata.df.schedtime", "originaldata.df.deptime"
), row.names = c(NA, 5L), class = "data.frame")
对于mydataset
中提到的数据,预期输出应该如下所示Delay(>2 min)
0 0 0 0 1 0 0
答案 0 :(得分:1)
您需要先将列转换为正确的日期时间,
d[] <- lapply(d, function(i) strptime(i, format = '%H%M'))
difftime(d$originaldata.df.schedtime,
d$originaldata.df.deptime, units = 'mins')
#Time differences in mins
#[1] 0 0 0 6 4
#or
as.integer(difftime(d$originaldata.df.schedtime,
d$originaldata.df.deptime, units = 'mins') > 2)
#[1] 0 0 0 1 1