Поиск…


замечания

похожие темы

Смешанные заметки

  • Date : Сохраняет время как количество дней с момента UNIX в 1970-01-01 . с отрицательными значениями для более ранних дат.
  • Он представлен как целое число (однако он не применяется во внутреннем представлении)
  • Они всегда печатаются по правилам текущего григорианского календаря, хотя календарь давно не использовался.
  • Он не отслеживает временные интервалы, поэтому его не следует использовать для усечения времени из объектов POSIXct или POSIXlt .
  • sys.Date() возвращает объект класса Date

Другие заметки

Форматирование дат

Для форматирования Dates мы используем format(date, format="%Y-%m-%d") с помощью POSIXct (заданного из as.POSIXct() ) или POSIXlt (данный из as.POSIXlt() )

d = as.Date("2016-07-21") # Current Date Time Stamp

format(d,"%a")            # Abbreviated Weekday
## [1] "Thu"

format(d,"%A")            # Full Weekday
## [1] "Thursday"

format(d,"%b")            # Abbreviated Month
## [1] "Jul"

format(d,"%B")            # Full Month
## [1] "July"

format(d,"%m")            # 00-12 Month Format
## [1] "07"

format(d,"%d")            # 00-31 Day Format
## [1] "21"

format(d,"%e")            # 0-31 Day Format
## [1] "21"

format(d,"%y")            # 00-99 Year
## [1] "16"

format(d,"%Y")            # Year with Century
## [1] "2016"

Подробнее см. ?strptime .

Даты

Чтобы принудить переменную к дате использовать as.Date() .

> x <- as.Date("2016-8-23")
> x
[1] "2016-08-23"
> class(x)
[1] "Date"

Функция as.Date() позволяет вам предоставить аргумент формата. По умолчанию используется значение %Y-%m-%d , которое равно Year-month-day.

> as.Date("23-8-2016", format="%d-%m-%Y") # To read in an European-style date
[1] "2016-08-23"

Строка формата может быть помещена либо в пару одинарных кавычек, либо в двойные кавычки. Даты обычно выражаются в различных формах, таких как: "dm-yy" или "dm-YYYY" или "md-yy" или "md-YYYY" или "YYYY-md" или "YYYY-dm" . Эти форматы также можно выразить, заменив "-" на "/" . Более того, даты также выражаются в формах, например: «6 ноября 1986 года» или «6 ноября 1986 года» или «6 ноября 1986 года» или «6 ноября 1986 года» и т. Д. Функция as.Date () принимает все такие символьные строки, и когда мы указываем соответствующий формат строки, она всегда выводит дату в форме "YYYY-md" .

Предположим, что у нас есть строка даты "9-6-1962" в формате "%d-%m-%Y" .

#
# It tries to interprets the string as YYYY-m-d
#
> as.Date("9-6-1962")
[1] "0009-06-19"       #interprets as "%Y-%m-%d"
> 
as.Date("9/6/1962")
[1] "0009-06-19"       #again interprets as "%Y-%m-%d"
>
# It has no problem in understanding, if the date is in form  YYYY-m-d or YYYY/m/d
#
> as.Date("1962-6-9")
[1] "1962-06-09"        # no problem
> as.Date("1962/6/9")
[1] "1962-06-09"        # no problem
> 

Указав правильный формат входной строки, мы можем получить желаемые результаты. Мы используем следующие коды для указания форматов функции as.Date () .

Формат кода Имея в виду
%d день
%m месяц
%y год в 2-значных цифрах
%Y год в 4-значных цифрах
%b сокращенный месяц в 3 символах
%B полное название месяца

Рассмотрим следующий пример, определяющий параметр формата :

> as.Date("9-6-1962",format="%d-%m-%Y")
[1] "1962-06-09"
>

Формат имя параметра можно опустить.

> as.Date("9-6-1962", "%d-%m-%Y")
[1] "1962-06-09"
>

Несколько раз имена месяцев, сокращенных до первых трех символов, используются при написании дат. В этом случае мы используем спецификатор формата %b .

> as.Date("6Nov1962","%d%b%Y")
[1] "1962-11-06"
>

Обратите внимание, что между членами в строке даты нет ни '-' ни '/' или белых пробелов. Строка формата должна точно соответствовать этой входной строке. Рассмотрим следующий пример:

> as.Date("6 Nov, 1962","%d %b, %Y")
[1] "1962-11-06"
>

Обратите внимание, что в строке даты есть запятая, а значит, и запятая в спецификации формата. Если запятая в строке формата опущена, это приводит к NA . Пример использования спецификатора формата %B выглядит следующим образом:

> as.Date("October 12, 2016", "%B %d, %Y")
[1] "2016-10-12"
>
> as.Date("12 October, 2016", "%d %B, %Y")
[1] "2016-10-12"
> 

Формат %y является системным и, следовательно, следует использовать с осторожностью. Другими параметрами, используемыми с этой функцией, являются начало и tz (часовой пояс).

Разбор строк на объекты даты

R содержит класс Date, который создается с помощью as.Date() , который берет строку или вектор строк, а если дата не соответствует формату YYYY-MM-DD ISO 8601 YYYY-MM-DD , строка форматирования strptime tokens ,

as.Date('2016-08-01')    # in ISO format, so does not require formatting string
## [1] "2016-08-01"

as.Date('05/23/16', format = '%m/%d/%y')
## [1] "2016-05-23"

as.Date('March 23rd, 2016', '%B %drd, %Y')    # add separators and literals to format
## [1] "2016-03-23"

as.Date('  2016-08-01  foo')    # leading whitespace and all trailing characters are ignored
## [1] "2016-08-01"

as.Date(c('2016-01-01', '2016-01-02'))
# [1] "2016-01-01" "2016-01-02"


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow