- Create Date objects:
> d <- as.Date("1776-7-4")
> e <- as.Date("1856/12/25")
> f <- as.Date("1970/1/1")
> print(d)
[1] "1776-07-04"
> print(e)
[1] "1856-12-25"
> print(f)
[1] "1970-01-01"
>
To create dates from strings in other formats, a format specifier is required:
> g <- as.Date("12.25.1956", format="%m.%d.%Y")
> print(g)
[1] "1956-12-25"
- Convert date to numeric. Jan. 1, 1970 is the zero date for R.
> n = as.numeric(f)
> print(n)
[1] 1
- Get the Julian Date, which for R is the number of days since January 1, 1970.
> d = as.Date(Sys.Date( ))
> as.integer(d)
[1] 15844
> d = as.Date("1970-1-1")
> as.integer(d)
[1] 0
- Create a sequence of dates:
> s <- as.Date("2009-1-1")
> e <- as.Date("2010-12-1")
> series1 <- seq(s, e, by=1)
> series2 <- seq(s, e, by="day")
> series3 <- seq(s, e, by="month")
> series4 <- seq(s, e, by="3 months")
> series5 <- seq(s, e, by="year")
> print(series1)
> print(series2)
> print(series3)
> print(series4)
> print(series5)
[1] "2009-01-01" "2009-01-02" "2009-01-03" "2009-01-04" "2009-01-05"
[6] "2009-01-06" "2009-01-07" "2009-01-08" "2009-01-09" "2009-01-10"
...
... Lines omitted from display.
...
[691] "2010-11-22" "2010-11-23" "2010-11-24" "2010-11-25" "2010-11-26"
[696] "2010-11-27" "2010-11-28" "2010-11-29" "2010-11-30" "2010-12-01"
> print(series2)
[1] "2009-01-01" "2009-01-02" "2009-01-03" "2009-01-04" "2009-01-05"
[6] "2009-01-06" "2009-01-07" "2009-01-08" "2009-01-09" "2009-01-10"
...
... Lines omitted from display.
...
[691] "2010-11-22" "2010-11-23" "2010-11-24" "2010-11-25" "2010-11-26"
[696] "2010-11-27" "2010-11-28" "2010-11-29" "2010-11-30" "2010-12-01"
> print(series3)
[1] "2009-01-01" "2009-02-01" "2009-03-01" "2009-04-01" "2009-05-01"
[6] "2009-06-01" "2009-07-01" "2009-08-01" "2009-09-01" "2009-10-01"
[11] "2009-11-01" "2009-12-01" "2010-01-01" "2010-02-01" "2010-03-01"
[16] "2010-04-01" "2010-05-01" "2010-06-01" "2010-07-01" "2010-08-01"
[21] "2010-09-01" "2010-10-01" "2010-11-01" "2010-12-01"
> print(series4)
[1] "2009-01-01" "2009-04-01" "2009-07-01" "2009-10-01" "2010-01-01"
[6] "2010-04-01" "2010-07-01" "2010-10-01"
> print(series5)
[1] "2009-01-01" "2010-01-01"
- 1900 is not a leap year but 2000 is in Gregorian Calendar.
> as.Date("2012-2-29")
[1] "2012-02-29"
> as.Date("2000-2-29")
[1] "2000-02-29"
> as.Date("1900-2-29")
Error in charToDate(x) :
character string is not in a standard unambiguous format