How to calculate number of days between two dates in R

我是研究僧i 提交于 2019-12-02 00:11:02

问题


I'm trying to subtract two dates in R. These are the two dates via the structure command:

str(standard_data_4testing$start_datetime)
 POSIXct[1:489124], format: "2016-02-01 00:38:49" "2016-02-01 07:48:53" "2016-02-01 08:32:08" "2016-02-01 11:21:13" ...

str(standard_data_4testing$original_installdate)
 Date[1:489124], format: "2015-10-15" "2015-10-15" "2015-10-15" "2016-01-29" "2016-01-29" "2016-01-29" ...

I created both with as.Date functions in R but start_datetime has date and time and original_installdate only has date in the original data as reflected above.

Is there a way to subtract them?

I tried to subtract using this statement:

standard_data_4testing$start_datetime - standard_data_4testing$original_installdate

but I get this error:

Warning message: Incompatible methods ("-.POSIXt", "-.Date") for "-"

after it prints out some data:

[6049] "2016-02-01 09:48:44 UTC" "2016-02-01 07:24:08 UTC" "2016-02-01 09:02:33 UTC" "2016-02-01 09:14:29 UTC" [6053] "2016-02-01 10:49:46 UTC" "2016-02-01 19:07:52 UTC" "2016-02-01 02:39:04 UTC" "2016-02-01 03:59:29 UTC" [6057] "2016-02-01 07:13:05 UTC" "2016-02-01 07:58:50 UTC" NA

I've also tried using POSIXct but received a similar error.

Is there any way I can subtract the two dates, despite the differences in their components?

Thanks for your help


回答1:


Convert both dates to the POSIXct class first. Be sure to do the calculations in the same timezone, the POSIXt classes default to your locale timezone, as.Date defaults to UTC.

test1 <- as.Date("2016-01-01", tz="UTC")
test2 <- strptime("2016-01-02", format="%Y-%m-%d", tz="UTC")
difftime(as.POSIXct(test2), as.POSIXct(test1, tz="UTC"), units="days")
# Time difference of 1 days


来源:https://stackoverflow.com/questions/36224714/how-to-calculate-number-of-days-between-two-dates-in-r

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!