R 将文本时间转换为十进制时间的算法
我有一些HHMM格式的文本时间字段,我需要将文本时间之间的差值转换为十进制值。下面是两个文本时间列“TextStartTime”和“TextEndTime”,以及一个名为“文本时间差”的列,这两个列之间存在差异R 将文本时间转换为十进制时间的算法,r,R,我有一些HHMM格式的文本时间字段,我需要将文本时间之间的差值转换为十进制值。下面是两个文本时间列“TextStartTime”和“TextEndTime”,以及一个名为“文本时间差”的列,这两个列之间存在差异 TextStartTime Text end time Diff. in Text Time Decimal TIME in Hours 0930 1300 370
TextStartTime Text end time Diff. in Text Time Decimal TIME in Hours
0930 1300 370 3.5
1015 1700 685 6.45
930 1600 670 6.5
0945 1725 780 7.66
0930 1540 610 6.16
1000 1645 645 6.75
我知道这不是R问题,但我可以使用什么算法将“文本时间差”字段转换为“十进制小时时间”字段
我首先说,如果“文本时间差”列的分钟数大于30,那么从分钟数中减去40,那么“670”将是“630”,然后我可以将630转换为6.5,但这对“645”不起作用,当我减去40时,我得到了我假设你的时间是数字(尽管情况可能并非如此,因为您有前导零。如果它们是字符串,请先使用as.numeric() “diff”给出了“diff.in Text Time”(文本时间差异)列中的内容。除以100得到小时数。未调整的分钟数是减去小时后剩下的时间。对于大于60的分钟,减去40。然后得到小时的分数。为十进制时间加上小时和分钟
TextStartTime <- c(930, 1015, 930, 0945, 0930, 1000)
Textendtime <- c(1300, 1700, 1600, 1725, 1540, 1645)
diff <- Textendtime-TextStartTime
hours <- floor(diff/100)
mins <- (diff/100-floor(diff/100))*100
mins[mins>60] <- mins[mins>60]-40
mins <- mins*1/60
time <- hours+mins
TextStartTime只是澄清一下:您不想使用hhmm时间来获取十进制小时数(因为如果是,请参见lubridate软件包)?您想直接使用差值?我想知道第二行是否应该是6.75