R Language
Die Date-Klasse
Suche…
Bemerkungen
verwandte Themen
Durcheinandergebrannte Notizen
-
Date
: Speichert die Zeit in Tagen seit der UNIX-Epoche am1970-01-01
. mit negativen Werten für frühere Termine. - Es wird als ganze Zahl dargestellt (in der internen Darstellung jedoch nicht erzwungen).
- Sie werden immer nach den Regeln des aktuellen Gregorianischen Kalenders gedruckt, auch wenn der Kalender vor langer Zeit nicht verwendet wurde.
- Zeitzonen werden nicht
POSIXct
, daher sollte die Zeit fürPOSIXct
oderPOSIXlt
Objekte nichtPOSIXlt
werden. -
sys.Date()
gibt ein Objekt der KlasseDate
Weitere Notizen
- lubridate ‚s
ymd
,mdy
usw. sind Alternativen zuas.Date
, die auch für Date - Klasse analysieren; Siehe Analysieren von Datumsangaben und Datumsangaben aus Zeichenfolgen mit Lubridat . - data.table ‚s experimentelle iDate Klasse abgeleitet ist von und ist meist austauschbar mit Datum, sondern wird als ganz Zahl anstelle von Doppel gespeichert.
Datumsangaben
Um Dates
zu formatieren, verwenden wir die Funktion format(date, format="%Y-%m-%d")
entweder mit dem POSIXct
(von as.POSIXct()
) oder POSIXlt
(von 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"
Weitere ?strptime
.
Termine
Um eine Variable zu einem Datum zu zwingen, verwenden Sie die Funktion as.Date()
.
> x <- as.Date("2016-8-23")
> x
[1] "2016-08-23"
> class(x)
[1] "Date"
Mit der Funktion as.Date()
können Sie ein as.Date()
. Der Standardwert ist %Y-%m-%d
, also Jahr-Monat-Tag.
> as.Date("23-8-2016", format="%d-%m-%Y") # To read in an European-style date
[1] "2016-08-23"
Die Formatzeichenfolge kann entweder in Anführungszeichen oder in Anführungszeichen gesetzt werden. : Daten werden in der Regel in einer Vielzahl von Formen, wie zum Ausdruck "dm-yy"
oder "dm-YYYY"
oder "md-yy"
oder "md-YYYY"
oder "YYYY-md"
oder "YYYY-dm"
. Diese Formate können auch ausgedrückt werden, indem "-"
durch "/"
. Ferner werden Daten auch in den Formen ausgedrückt, beispielsweise "6. November 1986" oder "6. November 1986" oder "6. November 1986" oder "6. November 1986" und so weiter. Die Funktion as.Date () akzeptiert alle derartigen Zeichenfolgen. Wenn wir das entsprechende Format der Zeichenfolge erwähnen, gibt sie immer das Datum in der Form "YYYY-md"
.
Angenommen, wir haben eine Datumszeichenfolge "9-6-1962"
im Format "%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
>
Durch die Angabe des korrekten Formats der Eingabezeichenfolge können wir die gewünschten Ergebnisse erzielen. Wir verwenden die folgenden Codes, um die Formate für die Funktion as.Date () anzugeben.
Formatcode | Bedeutung |
---|---|
%d | Tag |
%m | Monat |
%y | Jahr zweistellig |
%Y | Jahr 4-stellig |
%b | abgekürzter Monat in 3 Zeichen |
%B | vollständiger Name des Monats |
Betrachten Sie das folgende Beispiel, indem Sie den Formatparameter angeben:
> as.Date("9-6-1962",format="%d-%m-%Y")
[1] "1962-06-09"
>
Der Parametername Format kann weggelassen werden.
> as.Date("9-6-1962", "%d-%m-%Y")
[1] "1962-06-09"
>
In manchen Fällen werden die Namen der Monate, die mit den ersten drei Zeichen abgekürzt wurden, beim Schreiben der Daten verwendet. In diesem Fall verwenden wir den Formatbezeichner %b
.
> as.Date("6Nov1962","%d%b%Y")
[1] "1962-11-06"
>
Beachten Sie, dass zwischen den Elementen in der Datumszeichenfolge keine '-'
oder '/'
oder Leerzeichen stehen. Die Formatzeichenfolge sollte genau mit dieser Eingabezeichenfolge übereinstimmen. Betrachten Sie das folgende Beispiel:
> as.Date("6 Nov, 1962","%d %b, %Y")
[1] "1962-11-06"
>
Beachten Sie, dass in der Datumszeichenfolge ein Komma und somit auch in der Formatangabe ein Komma enthalten ist. Wenn in der Formatzeichenfolge kein Komma angegeben wird, führt dies zu einer NA
. Ein Beispiel für die Verwendung des Formatbezeichners %B
ist wie folgt:
> 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
Format %y
ist systemspezifisch und sollte daher mit Vorsicht verwendet werden. Andere mit dieser Funktion verwendete Parameter sind origin und tz (Zeitzone).
Zeichenketten in Datumsobjekte analysieren
R enthält eine Date-Klasse, die mit as.Date()
und eine Zeichenfolge oder einen Vektor von Zeichenfolgen verwendet. Wenn das Datum nicht im Datumsformat YYYY-MM-DD
(ISO 8601) strptime
, eine Formatierungszeichenfolge mit 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"