我有一个大的数据集,它是在数字数据类型的形式,定义时间在24小时格式在HHMM形式。
由于数据类型为数值型,因此前面的零不存在。可以在此处找到数据示例:
> dput(sleepDiary_1[1:100,3:4])
structure(list(`What time did you get into bed? (hhmm) (e.g., 11pm = 2300, 1.35am = 0135)
*please make sure its 4 digits (2 for hours, 2 for minutes)` = c(2330,
100, 9, 110, 10, 0, 209, 330, 2330, 50, 330, 800, 30, 100, 0,
2345, 130, 135, 400, 330, 100, 400, 100, 100, 315, 2305, 250,
215, 2300, 3, 356, 2306, 500, 0, 200, 10, 230, 2230, 100, 2200,
1230, 1128, 100, 430, 200, 5, 300, 145, 1, 100, 2330, 300, 2314,
1130, 0, 30, 1230, 15, 2300, 300, 200, 315, 2300, 105, 2310,
300, 1248, 30, 30, 2315, 2300, 35, 2300, 211, 1330, 115, 45,
130, 1200, 200, 300, 1220, 200, 230, 100, 300, 300, 145, 1100,
544, 300, 300, 2238, 0, 100, 133, 30, 5, 205, 300), `What time did you try and go to sleep? (hhmm) (e.g., 11pm = 2300, 1.35am = 0135)` = c(2330,
115, 34, 130, 20, 0, 257, 330, 15, 110, 430, 800, 40, 130, 0,
2345, 200, 150, 445, 330, 105, 400, 100, 100, 315, 2305, 330,
220, 100, 3, 430, 2306, 500, 5, 200, 0, 400, 2240, 130, 2200,
1230, 200, 130, 430, 215, 15, 320, 200, 30, 130, 2330, 300, 2314,
1132, 15, 30, 1230, 40, 2345, 300, 200, 315, 200, 110, 2310,
300, 1248, 125, 30, 2310, 0, 20, 0, 211, 1345, 45, 0, 155, 100,
330, 400, 1230, 200, 300, 115, 300, 300, 200, 1152, 530, 330,
300, 2230, 45, 130, 130, 25, 20, 230, 320)), row.names = c(NA,
-100L), class = c("tbl_df", "tbl", "data.frame"))
我希望对列进行归一化,以便进行进一步的分析。结果我不确定哪种归一化方法效果最好。我试图查看非正态数据的各种可能选项,但没有一个选项提到循环数据在一定时间后循环,即在2400之后,时间变回0000,因此值不会继续增加,而是循环。
为了补充,数据是关于睡眠时间和唤醒时间从不同的参与者记录在一项研究中。原来我们希望规范化的数据,并删除任何可能存在的离群值。
干杯!
1条答案
按热度按时间flseospp1#
我想这会让你更接近你想要的。
要将hhmm转换为小时,在小数点后,我们有小数小时:
选择一个任意的睡眠周期开始时间-2000看起来不错在“pivot time”之后将所有时间更改为hhmm因为我们需要pivot time之后的小时数,我们可以从times〉that中减去它,然后将2400 - pivot time添加到其余时间
将bed_try转换为新列bed_plus
将sleep_try转换为新列sleep_plus
探索性地块
删除负面信息-或者,找出如何纠正它们。
结果看起来更像你想要的?