1
我需要換班開始和結束時間之間的小時差。開始和結束時間是12小時am/pm格式的字符串。我們可以假設開始時間都在同一個calandar日,但結束時間可以在第二天(隔夜轉換)。 difftime
將它們視爲同一日期,導致計算錯誤方向的差異:如果開始時間爲晚上7:00,結束時間爲上午4:00,則9小時班次計算爲15小時。是否有可能計算這些時間差異而不創建更復雜的功能?R計算隔夜時差(當開始時間是PM,結束時間是第二天的AM時)
df= structure(c("7:00 AM", "7:00 PM", "8:00 AM", "10:00 PM",
"4:00 PM", "4:00 AM", "5:00 PM", "6:00 AM"), .Dim = c(4L, 2L))
as.numeric(difftime(
strptime(df[,2], "%I:%M %p"),
strptime(df[,1], "%I:%M %p"),
units='hours'))
[1] 9 -15 9 -16
我要找應該是結果:
[1] 9 9 9 8
我想你可以只保存結果的地方,然後添加'24'到負值,像'溫度< - as.numeric(difftime( strptime(DF [,2],「我% :%M%p「), strptime(df [,1],」%I:%M%p「), units ='hours')); temp [temp <0] < - temp [temp <0] + 24' –