Creare e formattare date
Per creare un oggetto Date a partire da una semplice stringa di caratteri in R, puoi usare la funzione as.Date(). La stringa deve rispettare un formato che può essere definito usando un insieme di simboli (gli esempi corrispondono al 13 gennaio 1982):
%Y: anno a 4 cifre (1982)%y: anno a 2 cifre (82)%m: mese a 2 cifre (01)%d: giorno del mese a 2 cifre (13)%A: giorno della settimana (Wednesday)%a: giorno della settimana abbreviato (Wed)%B: mese (January)%b: mese abbreviato (Jan)
I seguenti comandi R creeranno tutti lo stesso oggetto Date per il 13 gennaio 1982:
as.Date("1982-01-13")
as.Date("Jan-13-82", format = "%b-%d-%y")
as.Date("13 January, 1982", format = "%d %B, %Y")
Nota che nella prima riga non è stato necessario un argomento di formato, perché per impostazione predefinita R confronta la tua stringa con i formati "%Y-%m-%d" o "%Y/%m/%d".
Oltre a creare date, puoi anche convertire le date in stringhe di caratteri che usano una notazione diversa. Per farlo, usa la funzione format(). Prova le seguenti righe di codice:
today <- Sys.Date()
format(Sys.Date(), format = "%d %B, %Y")
format(Sys.Date(), format = "Today is a %A!")
Questo esercizio fa parte del corso
R intermedio
Istruzioni dell'esercizio
- Tre stringhe di caratteri che rappresentano date sono state create per te. Convertile in date usando
as.Date()e assegnale rispettivamente adate1,date2edate3. Il codice perdate1è già incluso. - Estrai informazioni utili dalle date come stringhe di caratteri usando
format(). Dalla prima data seleziona il giorno della settimana. Dalla seconda data seleziona il giorno del mese. Dalla terza data seleziona il mese abbreviato e l'anno a 4 cifre, separati da uno spazio.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Definition of character strings representing dates
str1 <- "May 23, '96"
str2 <- "2012-03-15"
str3 <- "30/January/2006"
# Convert the strings to dates: date1, date2, date3
date1 <- as.Date(str1, format = "%b %d, '%y")
# Convert dates to formatted strings
format(date1, "%A")