Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

R Programming/Times and Dates

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

R contains a set of object types for holding date and time information. The system time and date can also be requested. Format Many time and date units are recognised. These include: Unit Symbol Example 4 digit year %Y 1932 2 digit year %y 84 Numerical Month %m 03 Full Month %B January Abbreviated Month %b Jan Day of the month %d 31 Full weekday %A Wednesday Abbreviated weekday %a Wed Hours (24hr clock) %H 16 Minutes %M 35 Seconds %S 52 The default format is yyyy-mm-dd hh:mm:ss or %Y-%m-%d %H:%M:%S For example 2010-02-13 23:12:24 System Date and Time To get the system date and time: > Sys.time() [1] "2010-02-13 23:12:24 COT" > format(Sys.time(),"%H %M") # in a different format and without the date [1] "23 13" > Sys.Date() [1] "2010-02-13" > date() # returns the current date and time, [1] "Wed Jul 18 10:59:42 2012" Convert strings to date/time objects Convert a string representing the date or time into a Date/Time object: > my.date <- as.Date("2010-12-30") > print(my.date) [1] "2010-12-30" > my.date2 <- as.Date("12/20/30", format="%m/%d/%y") # input date in a different format > print(my.date2) [1] "2030-12-20" > my.time <- strptime("12/20/30 14.34.35", format="%m/%d/%y %H.%M.%S") # input time and date > print(my.time) [1] "2030-12-20 14:34:35" > my.string <- as.character(Sys.time()) # convert a date/time object to a normal string > print(my.string) [1] "2016-06-30 23:04:44" Extracting information from dates Get weekday, month and an integer representing the number of days since the beginning of epoch: > weekdays(my.date) # Get a string representing the weekday of the specified date [1] "Monday" > months(my.date) [1] "December" # Get the month as well > my.date [1] "2010-12-20" > julian(my.date) # Get the integer number of days since the beginning of epoch [1] 14963 attr(,"origin") [1] "1970-01-01" Note that weekdays() and months() returns results in the local language. For instance, if you turn R into French, you can get weekdays and months in FrenchIssue on Stackoverflow : > require("lubridate") > Sys.setlocale(locale="fr_FR.UTF-8") [1] "fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8" > mydate <- ymd("2002-04-21") > weekdays(mydate) [1] "Dimanche" > months(mydate) [1] "avril" Generating sequences of dates > seq(from = as.Date("01/01/12", "%d/%m/%y"), to = as.Date("10/01/12","%d/%m/%y"), by = "day") #create the 10 first days of January 2012 [1] "2012-01-01" "2012-01-02" "2012-01-03" "2012-01-04" "2012-01-05" "2012-01-06" [7] "2012-01-07" "2012-01-08" "2012-01-09" "2012-01-10" > seq(from = as.Date("20/01/12", "%d/%m/%y"), to = as.Date("20/12/12","%d/%m/%y"), by = "month") #create the 20th of each month in 2012 [1] "2012-01-20" "2012-02-20" "2012-03-20" "2012-04-20" "2012-05-20" "2012-06-20" [7] "2012-07-20" "2012-08-20" "2012-09-20" "2012-10-20" "2012-11-20" "2012-12-20" > seq(from = as.Date("01/01/12", "%d/%m/%y"), to = as.Date("31/01/12","%d/%m/%y"), length.out = 16) #create a sequence of every other day in january 2012 [1] "2012-01-01" "2012-01-03" "2012-01-05" "2012-01-07" "2012-01-09" "2012-01-11" [7] "2012-01-13" "2012-01-15" "2012-01-17" "2012-01-19" "2012-01-21" "2012-01-23" [13] "2012-01-25" "2012-01-27" "2012-01-29" "2012-01-31" References External links Do more with dates and times in R with lubridate 1.1.0 (a sample chapter from the “R in Action” book)