2012-01-17 4 views
6

Sto importando alcuni dati da NOAA e ho date e orari in colonne separate. Ho cercato un modo elegante per aggiungere una singola colonna datetime nel mio dataframe R ma non è stato possibile. Ho trovato una domanda di scambio di stack sull'inverso ma non su questo. C'è un comando as.Date semplice che potrei eseguire? Sto semplicemente usando read.table per un file di testo scaricato e importa solo trovare.Date e orari in colonne separate, convertire in datetime in R

dati boa è qui: http://www.ndbc.noaa.gov/data/realtime2/51202.txt

>yr mo dy hr mn degT m.s m.s.1 m sec sec.1 degT.1 hPa degC degC.1 degC.2 nmi hPa.1 ft 
>2012 1 16 3 55 MM MM MM 1.4 10 7.2 339 MM MM 23.9 MM MM MM MM 
+0

In uscita presumo che 2012 sia l'anno e 1 all'inizio della riga di dati sia solo un identificatore di esempio? –

+0

Grazie Gavin, sì l'ho corretto. –

risposta

10

È possibile utilizzare ISOdatetime, che è solo un semplice wrapper per as.POSIXct. Assicurati di specificare l'argomento sec come zero.

Data$timestamp <- with(Data, ISOdatetime(YY,MM,DD,hh,mm,0)) 
5

Sì, si desidera incollare le colonne relative all'orario data insieme e poi costringere la stringa completa di un oggetto data ora.

dat <- within(dat, datetime <- as.POSIXlt(paste(yr, mo, dy, hr, mn), 
              format = "%Y %m %d %H %M")) 

assumendo dat è l'oggetto contenente i dati boa. Questo aggiunge una nuova colonna che è un oggetto di classe "POSIXlt" o potresti usare as.POSIXct() se preferisci l'altro formato.

Oppure, dopo aver guardato il file in modo possono utilizzare i loro nomi delle colonne:

dat <- within(dat, datetime <- as.POSIXlt(paste(YY, MM, DD, hh, mm), 
              format = "%Y %m %d %H %M")) 
Problemi correlati