這是我的源資料 csv、df 的示例:
Year : int 2005 2005 2005 2005 2005 2005 2005 2005 2005 2005 ...
Month : int 1 1 1 1 1 1 1 1 1 1 ...
DayofMonth : int 28 29 30 31 2 3 4 5 6 7 ...
Time : int 1605 1605 1610 1605 1900 1900 1900 1900 1900 1900
如何使用 SQLite 而不是 dplyr 將 4 列合并到資料庫中的日期時間列中?
我希望輸出可以類似于: 2005-01-29 09:30:00 以便我可以繪制圖表。
我希望我的 qn 有意義。
uj5u.com熱心網友回復:
你可以使用lubridate::make_datetime:
Year =c(2005, 2005, 2005)
Month = c(1,2,3)
DayofMonth = c( 28, 28, 30)
Time = c(1605, 1605, 1610)
lubridate::make_datetime(Year,Month,DayofMonth,floor(Time/100),Time%%100)
[1] "2005-01-28 16:05:00 UTC" "2005-02-28 16:05:00 UTC" "2005-03-30 16:10:00 UTC"
uj5u.com熱心網友回復:
Base R,使用 Waldi 的樣本資料(謝謝!):
with(df, as.POSIXct(sprintf("%i-i-%i i:i:00",
Year, Month, DayofMonth, Time %/% 100, Time %% 100))
)
# [1] "2005-01-28 16:05:00 EST" "2005-02-28 16:05:00 EST" "2005-03-30 16:10:00 EST"
這是(可能是天真的)假設您從來沒有秒或小數分鐘或Time不“有意義”的值(即,超過 59 分鐘,超過 23 小時)。
資料
df <- structure(list(Year = c(2005, 2005, 2005), Month = c(1, 2, 3), DayofMonth = c(28, 28, 30), Time = c(1605, 1605, 1610)), class = "data.frame", row.names = c(NA, -3L))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/447113.html
