2017-10-19 46 views
-1

爲了簡單起見,我已經創建了下面的代碼:中的R轉換時間至24小時

some_data <- c(1, 12, 500, 1800, 9, 1230) 
    df <- as.data.frame(some_data) 

我想這些時間轉換成一個24小時刻度。例如,最終輸出應該是(1300,1200,1700,1800,900,1230)

我遇到的主要問題是某些數據沒有尾隨0或00,如1PM ,但其他人的確如此。我不知道如何將這個添加到只有缺少它的時間。這些時間是上課時間,所以12-7是全部PM,而8-11是AM。有沒有更有效的方法來做到這一點,還是我不得不手動改變它,因爲時間不同?

+0

@MauritsEvers因爲8-11倍之間是AM和時間12-7 PM。由於這些是上課時間,上午1點或晚上9點沒有課程 – Jordan

+0

謝謝,應該仔細閱讀。這在你的問題中已經清楚地陳述了。我的錯。 PS。不是我的downvote。 –

回答

1

它應該是安全的假設所有的時間小於100需要由100之後相乘,它只是一個800之前校正時間的事情:


correct_times <- function(times) { 
    times_hmm <- ifelse(times < 100, 
         times * 100, 
         times) 

    ifelse(times_hmm < 800, 
     times_hmm + 1200, 
     times_hmm) 
} 
correct_times(c(1, 12, 500, 1800, 9, 1230)) 
#> [1] 1300 1200 1700 1800 900 1230 
1

這是你的樣品工作組

df$some_data=ifelse(df$some_data>100,df$some_data/100,df$some_data) 
df$some_data=ifelse((df$some_data>=8&df$some_data<=11)|df$some_data>=12,df$some_data,df$some_data+12) 

df$some_data*100 
[1] 1300 1200 1700 1800 900 1230 
相關問題