Domanda

Ho quello che potrebbe essere una domanda molto semplice. Voglio elaborare una colonna di oggetti POSIXct da un dataframe e generare un vettore di stringhe datetime. Ho cercato di usare la seguente chiamata sapply

dt <- sapply(df$datetime, function(x) format(x,"%Y-%m-%dT%H:%M:%S"))

, ma senza alcun risultato. Continuo a ricevere il seguente errore:

> Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L,  :
invalid 'trim' argument

Quando applico questa funzione per un singolo oggetto POSIXct dalla colonna, non ho alcun problema. Così sto perplesso al momento circa quale sia il problema. Ho bisogno di fare qualcosa di speciale con gli oggetti POSIXct?

È stato utile?

Soluzione

format() avrà un argomento vettore, in modo format(df$datetime,"%Y-%m-%dT%H:%M:%S") dovrebbe fare ciò che è necessario.

Quando si utilizza sapply, gli oggetti sono costretti a numerico, e quindi il metodo formato sbagliato sia invocata. Si potrebbe costringere di nuovo al POSIXct utilizzando sapply(df$datetime, function(x) format(as.POSIXct(x, origin="1970-01-01"),"%Y-%m-%dT%H:%M:%S")), ma se non hai una ragione speciale per usare apply, basta utilizzare il metodo di cui sopra

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top