我正在尝试计算R中的日期 - 1(基本上是日期的前一天),当它将其转换为POSIXct时,它似乎会减去另一个日期?
该列的类型为POSIXct:
class(df$Date)
[1] "POSIXct" "POSIXt"
这是初始值:
> df[12,"Date"]
[1] "2016-03-09 EST"
如果我只是做as.Date并减去一个它工作正常:
as.Date(df[12,"Date"]-1, tz="EST")
[1] "2016-03-08"
但是我将它保存回同一列,因此它会自动转换为as.POSIXct(我认为) . 然后我在3月7日的那一栏结束 . 晚上7点 . 如果我在这里打字,我会得到这个:
as.POSIXct(as.Date(df[12,"Date"]-1, tz="EST"))
[1] "2016-03-07 19:00:00 EST"
我试过用美国/纽约作为tz . 我已经尝试了围绕df [12,“Date”]的as.Date或者包括-1的整个事件......我不知道该怎么做!
谢谢!
2 回答
使用
as.difftime
删除以时间为单位指定的金额 . 无论您的数据是Date
还是POSIXct
格式,它都能始终如一地工作 . 例如 . :如您所述,这会失败:
这有效:
如果你不想做Frank在评论中提到的话,
您应该考虑使用
strptime
而不是as.POSIXct
为确保以
POSIXct
格式返回,请使用: