I have a dataframe (df3) with with some values.
One of these values is the daedlines.
The data of this value is something like the following:
deadline
1419397140
1418994978
1419984000
1418702400
They are days and I want to convert the to using this:
df3$deadline <- as.POSIXct(df3$deadline, origin="1970-01-01")
Generally it was worked for me with other dataframes from other files.
However with this it gives me back this error:
Error in as.POSIXlt.character(as.character(x), ...) :
character string is not in a standard unambiguous format
How can I fix it?
This error usually occurs when you attempt to convert an object in R to a date format, but the object is currently either a character or factor. To fix this error, you must first convert the object to numeric.
The character string is not in a standard unambiguous format is a problem that can occur when changing date format using the posixct function. It occurs when converting numeric dates to calendar dates. It is not a problem caused by leading zeros but by using the wrong format in your numeric date.
We can convert the character to timestamp by using strptime() method. strptime() function in R Language is used to parse the given representation of date and time with the given template.
It might be that you have a character or factor, and it's expecting a numeric vector for conversion from unix time :
as.POSIXct(as.numeric(as.character(df3$deadline)),origin="1970-01-01")
As a suggestion for future debugging, you can check your parameter type by using
class(df3$deadline)
and making sure you are passing the correct type to as.POSIXlt().
From the help menu for asPOSIX*():
Character input is first converted to class '"POSIXlt"' by 'strptime': numeric input is first converted to '"POSIXct"'. Any conversion that needs to go between the two date-time classes requires a time zone: conversion from '"POSIXlt"' to '"POSIXct"' will validate times in the selected time zone.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With