La seconda domanda del giorno e il mio ultimo tentativo di utilizzare R per pulire questi dati. Ecco il sitrep:Estrarre gli elementi di data da POSIXlt e inserirli nel frame di dati in R
Ho un frame di dati che ha una colonna che è un tipo di data POSIXlt. Voglio estrarre il giorno, il mese e l'anno da quella colonna e creare 3 nuove colonne chiamate (intelligentemente) giorno, mese e anno.
La cornice di dati si presenta così:
order_id dd_mmm_yy
1 2005-07-28
2 2007-03-04
Voglio finire con questo:
order_id dd_mmm_yy day month year
1 2005-07-28 28 7 2005
2 2007-03-04 4 3 2007
ho creato una funzione per estrarre il giorno, il mese e l'anno e restituirli in una lista (o in una cornice dati, ho provato entrambi).
extractdate = function (date) {
day = format(date, format="%d")
month = format(date, format="%m")
year = format(date, format="%Y")
list(day=day, month=month, year=year)
}
Ecco che cosa ho provato in base a un problema di precedenza e domanda:
cbind(orders, t(sapply(orders$dd_mmm_yy, extractdate)))
che mi dà questo:
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 5, 9
La t (sapply ... da sola dà me questo per qualche motivo folle:
day month year
sec Character,5 Character,5 Character,5
min Character,5 Character,5 Character,5
hour Character,5 Character,5 Character,5
mday Character,5 Character,5 Character,5
mon Character,5 Character,5 Character,5
year Character,5 Character,5 Character,5
wday Character,5 Character,5 Character,5
yday Character,5 Character,5 Character,5
isdst Character,5 Character,5 Character,5
Wh sulla terra sta succedendo? Sto meglio usando qualcosa come Python o Java per fare tutta la manipolazione dei dati che devo fare su questi dati prima di portarli in R per l'analisi?
Grazie! Ha funzionato perfettamente. Sapevo che doveva esserci una soluzione semplice. –
C'è un problema con questa soluzione, controlla sotto. – mmann1123
@ user1034797: non ci sono problemi con questa soluzione. Supponi di cambiare gli elementi di un oggetto POSIXlt, cosa che non faccio. –