Kom igångKom igång gratis

Skapa och formatera datum

För att skapa ett Date-objekt från en enkel teckensträng i R kan du använda funktionen as.Date(). Teckensträngen måste följa ett format som definieras med hjälp av en uppsättning symboler (exemplen motsvarar den 13 januari 1982):

  • %Y: 4-siffrigt år (1982)
  • %y: 2-siffrigt år (82)
  • %m: 2-siffrigt månadstal (01)
  • %d: 2-siffrigt dagtal (13)
  • %A: veckodag (Wednesday)
  • %a: förkortad veckodag (Wed)
  • %B: månad (January)
  • %b: förkortad månad (Jan)

Följande R-kommandon skapar alla samma Date-objekt för den 13 januari 1982:

as.Date("1982-01-13")
as.Date("Jan-13-82", format = "%b-%d-%y")
as.Date("13 January, 1982", format = "%d %B, %Y")

Observera att den första raden inte behöver något format-argument, eftersom R som standard matchar din teckensträng mot formaten "%Y-%m-%d" eller "%Y/%m/%d".

Förutom att skapa datum kan du även konvertera datum till teckensträngar med en annan datumnotation. Det gör du med funktionen format(). Prova följande kodrader:

today <- Sys.Date()
format(Sys.Date(), format = "%d %B, %Y")
format(Sys.Date(), format = "Today is a %A!")

Den här övningen är en del av kursen

R för medelnivå

Visa kurs

Övningsinstruktioner

  • Tre teckensträngar som representerar datum har skapats åt dig. Konvertera dem till datum med as.Date() och tilldela dem till date1, date2 respektive date3. Koden för date1 är redan inkluderad.
  • Extrahera användbar information från datumen som teckensträngar med format(). Hämta veckodagen från det första datumet. Hämta dagtalet från det andra datumet. Från det tredje datumet hämtar du den förkortade månaden och det 4-siffriga året, separerade med ett mellanslag.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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")
Redigera och kör kod