character string is not in a standard unambiguous format
Asked Answered
C

2

13

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?

Cosmography answered 7/5, 2015 at 15:22 Comment(1)
Your data is not numeric, but probably factors. This is likely a problem that should be solved during data import.Asphodel
S
14

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")
Selfimprovement answered 7/5, 2015 at 15:30 Comment(0)
B
5

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.

Brunet answered 7/5, 2015 at 15:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.