R-日期序列的长度因使用的格式而异
提前感谢您抽出时间 我正在R中生成从一个日期到另一个日期的小时时间序列。这两个日期是:R-日期序列的长度因使用的格式而异,r,date,datetime,seq,R,Date,Datetime,Seq,提前感谢您抽出时间 我正在R中生成从一个日期到另一个日期的小时时间序列。这两个日期是: first_date_year_start <- as.Date("1995-1-1") date_end <- as.Date("2015-10-31") first\u date\u year\u start您的第一种方法假设它总是一天24小时,但情况并非总是如此。例如,在美国,由于夏令时的原因。 让我们用两个日期来尝试您的方法,一个是2015年美国夏令时3月8日前一天,另
first_date_year_start <- as.Date("1995-1-1")
date_end <- as.Date("2015-10-31")
first\u date\u year\u start您的第一种方法假设它总是一天24小时,但情况并非总是如此。例如,在美国,由于夏令时的原因。
让我们用两个日期来尝试您的方法,一个是2015年美国夏令时3月8日前一天,另一个是2015年美国夏令时后一天(如果您的地区设置为美国)
编辑
你最初的第二个方法是正确的,在我的第一个版本中,我在最后一天计算了25个小时。现在更正
julDays_1hstep_simulation_period <- seq(from = 1, to = 23/24 + as.numeric(date_end-first_date_year_start) + 1, by = 1/24 )
first_date_year_start_with_time <- strptime (paste0(as.character(first_date_year_start), " 00:00") ,format = "%Y-%m-%d %H:%M")
date_end_with_time <- strptime (paste0(as.character(date_end), " 23:00") ,format = "%Y-%m-%d %H:%M")
dates_with_times_simulation_period <- seq(from =first_date_year_start_with_time , to = date_end_with_time , by = "hour")
date_end <- as.Date("2015-1-3")
start <- as.Date("1995-1-1")
end_bef <- as.Date("2015-3-7")
end_aft <- as.Date("2015-3-9")
# Assumes 24 hours each day
method_1 <- function(start, end) {
out <- seq(
from = 1,
to = 23/24 + as.numeric(end - start) + 1,
by = 1/24
)
length(out)
}
# Lets `seq()` date method worry about daylight savings time, etc,
# based on locale
method_2 <- function(start, end) {
start <- strptime(
paste0(as.character(start), " 00:00"),
format = "%Y-%m-%d %H:%M"
)
end <- strptime(
paste0(as.character(end), " 23:00"),
format = "%Y-%m-%d %H:%M"
)
length(seq(start, end, "hour"))
}
method_1(start, end_bef) == method_2(start, end_bef)
#> [1] TRUE
method_1(start, end_aft) == method_2(start, end_aft)
#> [1] FALSE