Similar Q&A everywhere, but none helped me to overcome the following error (I am trying to convert unix time to date-time format):
> cur196$time
integer64
[1] 1566204590000 1566204585000 1566204580000 1566204570000 1566204560000 1566204550000 1566204531000 1566204525000 1566204521000 1566204501000
[11] 1566204495000 1566204491000 1566204481000 1566204464000 1566204461000 1566204451000 1566204441000 1566204434000 1566204431000 1566204420000
[21] ...
> cur196$time <- as.POSIXct(cur196$time, origin = "1970-01-01", tz = "GMT")
Error in as.POSIXct.default(cur196$time, origin = "1970-01-01", tz = "GMT") :
do not know how to convert 'cur196$time' to class “POSIXct”
EDIT:
> dput(head(cur196$time))
structure(c(7.73807882277875e-312, 7.73807879807547e-312, 7.73807877337218e-312,
7.73807872396562e-312, 7.73807867455905e-312, 7.73807862515249e-312
), class = "integer64")
EDIT 2:
@zx8754 thank you very much for changing the title and thus pointing out the real problem - unix time stamps are in miliseconds and thus to large for conversion.
The problem is that your data has the class integer64
from the bit64
package. You need to convert it to a normal integer with as.integer()
, while the bit64
package is loaded. Then you can use as.POSIXct()
on it.
But probably you should look into how you imported the data and why it is saved that way in the first place. Does it need to be a 64-bit integer?