Seite 1 von 1

Datum in deutschem Format

Verfasst: Di Jan 14, 2020 12:01 pm
von Effigy
Hallo zusammen,

ich habe folgenden DF

Code: Alles auswählen

str (WSDede)
'data.frame':	15994 obs. of  41 variables:
 $ Date   : chr  "12.04.19" "12.04.19" "12.04.19" "12.04.19" ...
 $ Time   : chr  "2:30 a" "3:00 a" "3:30 a" "4:00 a" ...
 $ Out    : num  1.8 1.7 1.6 1.6 1.6 1.6 1.3 1.2 0.9 1.2 ...
 $ Temp   : num  1.8 1.8 1.8 1.7 1.7 1.7 1.7 1.3 1.2 1.3 ...
 $ Temp.1 : num  1.7 1.7 1.6 1.6 1.5 1.6 1.3 1.1 0.9 0.9 ...
 $ Hum    : int  80 80 80 80 79 79 80 81 83 82 ...
 $ Pt.    : num  -1.3 -1.4 -1.5 -1.5 -1.6 -1.6 -1.7 -1.7 -1.7 -1.6 ...
 $ Speed  : num  1.8 2.2 1.8 2.2 1.8 2.2 1.8 1.3 0.9 1.3 ...
 $ Dir    : chr  "NE" "NE" "NE" "NE" ...
 $ Run    : num  3.22 4.02 3.22 4.02 3.22 4.02 3.22 2.41 1.61 2.41 ...
 $ Speed.1: num  4.9 4.5 4.5 4.9 4.9 5.4 4.5 3.6 2.2 3.1 ...
 $ Dir.1  : chr  "NE" "NE" "NE" "ENE" ...
 $ Chill  : num  -0.1 -0.7 -0.3 -0.8 -0.3 -0.8 -0.7 -0.1 0.4 -0.2 ...
 $ Index  : num  1.6 1.6 1.4 1.4 1.4 1.4 1.1 1 0.7 0.9 ...
 $ Index.1: num  -0.3 -0.9 -0.5 -1 -0.5 -1 -0.9 -0.3 0.2 -0.4 ...
 $ Index.2: num  NA NA NA NA NA NA NA NA NA NA ...
 $ Bar    : num  1033 1033 1033 1033 1033 ...
 $ Rain   : num  0 0 0 0 0 0 0 0 0 0 ...
 $ Rate   : num  0 0 0 0 0 0 0 0 0 0 ...
..................
> 
Nun möchte ich gerne den char vektor $ Date als Datum formatieren. Wenn ich das hier mache

Code: Alles auswählen

WSDede$Date <- as.Date.character(WSDede$Date, "%d.%m.%y")
versaut er mir das Format. Wenn ich es dann mit

Code: Alles auswählen

WSDede$Date <- format(WSDede$Date, "%d.%m.%y")
ins deutsche Format bringen will, erhalte ich wieder einen char. Wie kann ich $ Date in ein deutsches Datumsformat dd.mm.yy formatieren ohne wahnsinnig zu werden? Vielen Dank!

Re: Datum in deutschem Format

Verfasst: Di Jan 14, 2020 12:10 pm
von jogo
Hallo Max,

Code: Alles auswählen

x <- c("12.04.19", "12.04.19", "12.04.19", "12.04.19")
y <- as.Date(x, "%d.%m.%y")
str(y)
Wenn Du natürlich nur auf das Ergebnis von schaust, kannst Du auf den Gedanken kommen, dass es y nur ein character ist.
Aber bedenke, was bedeutet. Es ist identisch mit

Code: Alles auswählen

print(y)
... und was sollen Funktionen, die die Ausgabe formatieren, anderes liefern außer character?

Gruß, Jörg

Re: Datum in deutschem Format

Verfasst: Di Jan 14, 2020 1:13 pm
von Effigy
Danke für die Antwort, Jörg, aber leider weiß ich nicht so ganz, was Du mir damit sagen möchtest.. Ich mein wenn ich

Code: Alles auswählen

x <- c("12.04.19", "12.04.19", "12.04.19", "12.04.19")
y <- as.Date(x, "%d.%m.%y")
str(y)
eingebe, erhalte ich ja ein Datum im Format YYYY-mm-dd, aber ich möchte ja dd.mm.yy und das als Typ "Date" und nicht als Typ "Char". Wo liegt denn mein Denkfehler? Danke

Gruß, Max

Re: Datum in deutschem Format

Verfasst: Di Jan 14, 2020 2:02 pm
von jogo
Effigy hat geschrieben: Di Jan 14, 2020 1:13 pm Danke für die Antwort, Jörg, aber leider weiß ich nicht so ganz, was Du mir damit sagen möchtest.. Ich mein wenn ich

Code: Alles auswählen

x <- c("12.04.19", "12.04.19", "12.04.19", "12.04.19")
y <- as.Date(x, "%d.%m.%y")
str(y)
eingebe, erhalte ich ja ein Datum im Format YYYY-mm-dd,
Das ist das interne Format für ein Datum (für den Typ Date)

aber ich möchte ja dd.mm.yy
Das ist ein gewünschtes Ausgabeformat.
... und das als Typ "Date" und nicht als Typ "Char". Wo liegt denn mein Denkfehler?
Das wird wohl so nicht gehen, wie Du es Dir wünschst. Auf das interne Format hat man wenig Einfluss. Aber Du kannst Dir eine zusätzliche Spalte anlegen, in der Du Dein gewünschtes Ausgabeformat hast - diese Spalte wird aber character sein.

Gruß, Jörg

Re: Datum in deutschem Format

Verfasst: Di Jan 14, 2020 7:55 pm
von EDi
Das wird wohl so nicht gehen, wie Du es Dir wünschst. Auf das interne Format hat man wenig Einfluss. Aber Du kannst Dir eine zusätzliche Spalte anlegen, in der Du Dein gewünschtes Ausgabeformat hast - diese Spalte wird aber character sein.
Oder man definiert seine eigene Klasse (samt funktionen) welche eine deutsches Datum intern benutzt. Aber ob das den Aufwand wert ist, wenn man die bestehende Klasse beliebig umformatieren kann...

Re: Datum in deutschem Format

Verfasst: Do Jan 16, 2020 1:40 pm
von jogo
Hallo Max,

vielleicht kann man auch die Funktion print.Date() überschreiben, so dass diese die Ausgabe nach Deinem gusto formatiert.
Da ich so ein Vorgehen als Nichtmehrganzanfänger nicht unternehmen würde, kann ich es Dir auch nicht empfehlen.

Gruß, Jörg

Re: Datum in deutschem Format

Verfasst: Mi Jan 22, 2020 3:59 pm
von Effigy
Hallo zusammen,

vielen Dank, ich hab's einfach sein lassen und arbeite mit dem internationalen YYYY-MM-DD Format. :) Danke!

Gruß,
Max