我正在用R来计算人睡觉的时间。目前,睡眠时间和唤醒时间都是在军事时间报告的,所以当我使用difftime()时,从晚上9点睡觉(21:00)到早上7点醒来(07:00)之间的间隔是14小时,而不是10小时。有人能帮我弄清楚我需要做什么才能给我正确的时差吗?
示例数据:
bedtime waketime
1 1899-12-31 01:00:00 1899-12-31 06:00:00
2 1899-12-31 21:00:00 1899-12-31 07:00:00
3 1899-12-31 22:00:00 1899-12-31 06:00:00使用的脚本:
difftime(PSQI$wakeup_3, PSQI$bedtime_1, units = "hours")
[1] 5.00 -14.00 -16.00 当我要找的是
[1] 5.00 10.00 8.00 谢谢任何能帮忙的人!
发布于 2019-03-12 23:19:50
结合上面@thelatemail和@Dave2e的评论,我们可以这样做
with(df, ifelse(bedtime > waketime, waketime + 86400 - bedtime, waketime - bedtime))
#[1] 5 10 8我们增加86400秒(1天),只有当bedtime > waketime,然后取差额。确保列bedtime和waketime是实际的POSIXct类。
数据
df <- structure(list(bedtime = structure(c(-2209096006, -2209024006,
-2209020406), class = c("POSIXct", "POSIXt"), tzone = ""), waketime =
structure(c(-2209078006,
-2209074406, -2209078006), class = c("POSIXct", "POSIXt"), tzone =
"")), row.names = c(NA,
-3L), class = "data.frame")https://stackoverflow.com/questions/55131895
复制相似问题