Szukaj…


Uwagi

powiązane tematy

Pomieszane notatki

  • Date : Przechowuje czas jako liczbę dni od epoki UNIX 1970-01-01 . z wartościami ujemnymi dla wcześniejszych dat.
  • Jest reprezentowany jako liczba całkowita (jednak nie jest wymuszony w wewnętrznej reprezentacji)
  • Są zawsze drukowane zgodnie z zasadami obecnego kalendarza gregoriańskiego, mimo że kalendarz nie był używany dawno temu.
  • Nie śledzi stref czasowych, dlatego nie należy go używać do skracania czasu w POSIXct lub POSIXlt .
  • sys.Date() zwraca obiekt klasy Date

Więcej notatek

Formatowanie dat

Aby sformatować Dates , używamy funkcji format(date, format="%Y-%m-%d") z POSIXct (podany jako as.POSIXct() ) lub POSIXlt (podany jako 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"

Aby uzyskać więcej informacji, zobacz ?strptime .

Daktyle

Aby zmusić zmienną do daty, użyj funkcji as.Date() .

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

Funkcja as.Date() pozwala podać argument formatu. Wartość domyślna to %Y-%m-%d , czyli rok-miesiąc-dzień.

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

Ciąg formatu może być umieszczony w parze pojedynczych lub podwójnych cudzysłowów. Daty są zwykle wyrażane w różnych formach, takich jak: "dm-yy" lub "dm-YYYY" lub "md-yy" lub "md-YYYY" lub "YYYY-md" lub "YYYY-dm" . Formaty te można również wyrazić, zastępując "-" przez "/" . Ponadto daty wyrażane są również w postaciach, np. „6 listopada 1986 r.” Lub „6 listopada 1986 r.” Lub „6 listopada 1986 r.” Lub „6 listopada 1986 r.” I tak dalej. Funkcja as.Date () akceptuje wszystkie takie ciągi znaków, a kiedy wspomnimy o odpowiednim formacie ciągu, zawsze wyświetla datę w postaci "YYYY-md" .

Załóżmy, że mamy ciąg daty "9-6-1962" w formacie "%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
> 

Określając poprawny format ciągu wejściowego, możemy uzyskać pożądane wyniki. Używamy następujących kodów do określania formatów funkcji as.Date () .

Formatuj kod Znaczenie
%d dzień
%m miesiąc
%y rok w postaci dwucyfrowej
%Y rok w postaci 4 cyfr
%b w skrócie miesiąc w 3 znakach
%B pełna nazwa miesiąca

Rozważ następujący przykład określający parametr formatu :

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

Format nazwy parametru można pominąć.

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

Czasami przy pisaniu dat używane są nazwy miesięcy w skrócie do pierwszych trzech znaków. W takim przypadku używamy specyfikatora formatu %b .

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

Zauważ, że nie ma ani '-' ani '/' ani białych znaków między elementami w ciągu daty. Ciąg formatu powinien dokładnie pasować do tego ciągu wejściowego. Rozważ następujący przykład:

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

Zauważ, że w ciągu daty występuje przecinek, a zatem przecinek również w specyfikacji formatu. Jeśli przecinek formatu zostanie pominięty w ciągu formatu, spowoduje to NA . Przykład użycia specyfikatora formatu %B jest następujący:

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

Format %y jest specyficzny dla systemu i dlatego należy zachować ostrożność. Inne parametry używane w tej funkcji to początek i tz (strefa czasowa).

Parsowanie ciągów do obiektów daty

R zawiera klasę Date, która jest tworzona za pomocą as.Date() , która pobiera ciąg lub wektor ciągów, a jeśli data nie jest w formacie daty ISO 8601 YYYY-MM-DD , ciąg strptime tokenów w stylu strptime .

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow