【发布时间】:2018-03-30 23:47:09
【问题描述】:
向比我更了解 R 的人问好。对于我正在使用添加健康数据集的课程。有 3 个问题重复了两次,涉及睡眠模式(你要去几点,是上午还是下午,什么小步舞曲——然后重复这 3 个问题以了解某人何时醒来)。使用这些代码 sn-ps 我在 24 小时时钟上创建了 2 个变量
data$H4SP2T[data$H4SP2T %in% c(6, 8)] <- NA
data$H4SP2M[data$H4SP2M %in% c(96, 98)] <- NA
data$H4SP2H[data$H4SP2H %in% c(96, 98)] <- NA
data$ampm2 <- car::recode(data$H4SP2T, "1=0; 2=12")
data$ampm2[data$H4SP2H==12 & data$H4SP2T==2]<-0
data$sleep <- data$H4SP2H + data$ampm2 + data$H4SP2M/60
data$H4SP1T[data$H4SP1T %in% c(6, 8)] <- NA
data$H4SP1M[data$H4SP1M %in% c(96, 98)] <- NA
data$H4SP1H[data$H4SP1H %in% c(96, 98)] <- NA
data$ampm <- car::recode(data$H4SP1T, "1=0; 2=12")
data$ampm[data$H4SP1H==12 & data$H4SP1T==2]<-0
data$wakeup <- data$H4SP1H + data$ampm + data$H4SP1M/60
summary(data$sleep)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.00 12.00 22.00 17.44 23.00 107.63 1390
summary(data$wakeup)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.000 5.750 6.500 7.023 7.500 23.500 1404
但是,我遇到了一些障碍,正在寻找最好的方法。我遇到的第一个大问题是试图弄清楚如何将它们混合在一起以获得第三个变量,该变量简单地告诉我某人睡了多少小时,由于时间的循环性质,简单地添加或减去它们是行不通的。我遇到的较小问题还来自时间循环性质,它会影响人们上床睡觉的中位时间(稍微扰乱了起床时间,但没有那么多——有人在 2400 后睡觉比有人在 0100 醒来更常见) ,因为在 0100 睡觉的人比在 2400 睡觉的人晚睡 1 小时,而不是早 23 小时。
【问题讨论】:
-
我们有点需要
data(即dput(data)的粘贴输出。data也不是一个很好的变量名,即使 R 擅长解决问题。它会回来咬人你总有一天。 -
在您的问题中包含minimal reproducible example 会增加您获得答案的机会。
-
如果您有日期和时间,这会更容易。然后你可以把它们结合起来做实际的计算。