Datum in deutschem Format

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Effigy
Beiträge: 25
Registriert: Di Nov 26, 2019 11:44 am

Datum in deutschem Format

Beitrag von Effigy » Di Jan 14, 2020 12:01 pm

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!

jogo
Beiträge: 1601
Registriert: Fr Okt 07, 2016 8:25 am

Re: Datum in deutschem Format

Beitrag von jogo » Di Jan 14, 2020 12:10 pm

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

Effigy
Beiträge: 25
Registriert: Di Nov 26, 2019 11:44 am

Re: Datum in deutschem Format

Beitrag von Effigy » 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, 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

jogo
Beiträge: 1601
Registriert: Fr Okt 07, 2016 8:25 am

Re: Datum in deutschem Format

Beitrag von jogo » Di Jan 14, 2020 2:02 pm

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

Benutzeravatar
EDi
Beiträge: 972
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Datum in deutschem Format

Beitrag von EDi » Di Jan 14, 2020 7:55 pm

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...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.

jogo
Beiträge: 1601
Registriert: Fr Okt 07, 2016 8:25 am

Re: Datum in deutschem Format

Beitrag von jogo » Do Jan 16, 2020 1:40 pm

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

Effigy
Beiträge: 25
Registriert: Di Nov 26, 2019 11:44 am

Re: Datum in deutschem Format

Beitrag von Effigy » Mi Jan 22, 2020 3:59 pm

Hallo zusammen,

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

Gruß,
Max

Antworten