如何使用 R 中的 DBI 将年月日期时间合并到单个日期时间列中?
How do I combine year month date time into a single datetime column using DBI in R?
这是我的源数据 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 这样我就可以绘制图表了。
我希望我的问题有意义。
你可以使用 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"
Base R,使用 Waldi 的示例数据(感谢!):
with(df, as.POSIXct(sprintf("%i-%02i-%i %02i:%02i: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))
这是我的源数据 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 这样我就可以绘制图表了。
我希望我的问题有意义。
你可以使用 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"
Base R,使用 Waldi 的示例数据(感谢!):
with(df, as.POSIXct(sprintf("%i-%02i-%i %02i:%02i: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))