【发布时间】:2018-11-29 23:27:57
【问题描述】:
我试图在 R 中减去两个日期。这是通过结构命令的两个日期:
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" ...
我在 R 中使用 as.Date 函数创建了这两个函数,但 start_datetime 有日期和时间,而 original_installdate 在原始数据中只有日期,如上所示。
有没有办法减去它们?
我尝试使用以下语句进行减法:
standard_data_4testing$start_datetime - standard_data_4testing$original_installdate
但我收到此错误:
警告消息:“-”的方法不兼容(“-.POSIXt”、“-.Date”)
打印出一些数据后:
[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" 不适用
我也尝试过使用 POSIXct,但收到了类似的错误。
有什么方法可以减去这两个日期,尽管它们的组成部分不同?
【问题讨论】:
-
第一种格式的时间分量可以忽略吗?
-
消息说其中一个是`POSIxt`,另一个是
Date。如果它们是同一类,则可以减去。 -
DatamineR - 这是一个有趣的想法。我将尝试在定义它时将其删除 .asDate 并查看是否有帮助。我试过了,但仍然收到同样的错误:警告消息:“-”的不兼容方法(“-.POSIXt”,“-.Date”)
-
@Jazzmine:不要用str,用dput给我们一个可复现的例子
-
无论如何,您可以使用
difftime函数difference <- difftime(dates1,dates2,units='days'),并使用as.numeric(difference)获取数字(注意difftime它会自动将日期转换为POSIXct)
标签: r