Seite 1 von 2

time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 08, 2020 10:47 am
von niklas1993
Hallo zusammen,

da ich noch relativ neu bin, vermutlich eine etwas einfachere Frage. Ich verwende das Package "lubridate" wohl nicht ganz richtig.

Ich habe 7 Spalten, davon sind die ersten 6 Spalten Jahr, Monat, Tag, Stunde, Minute, Sekunde. Die 7 Spalte ist der Preis.

wie kann ich eine neue Spalte bekommen wo ich eine time-stamp Variable des datums habe, damit ich eine Regression zum Preis machen kann?

ich habe schon so angefangen, nur erscheint keine neue Spalte und es werden auch nicht das Datum von 21.Februar 2020 bis 23. April 2016 durchgegangen.

ymd_hms("2020-2-21 3:4:47, 2016-4-23 1:0:0")


Danke für eure Hilfe.
Beste Grüße

Re: time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 08, 2020 10:50 am
von jogo
Hallo Niklas,

willkommen im Forum!
Ich sehe jetzt noch nicht die 7 Spalten Deines Dataframes.
Kannst Du bitte den Output von

Code: Alles auswählen

str(DeinDataframe)
in Deine nächste Nachricht kopieren?

Gruß, Jörg

Re: time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 08, 2020 11:20 am
von niklas1993
hallo Jörg, ja gerne.

Code: Alles auswählen

Classes ‘data.table’ and 'data.frame':	2525 obs. of  8 variables:
 $ product_id: int  71848 71848 71848 71848 71848 71848 71848 71848 71848 71848 ...
 $ year      : int  2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 ...
 $ month     : int  3 3 3 3 3 3 3 3 3 3 ...
 $ day       : int  21 20 19 18 17 16 15 14 13 12 ...
 $ hour      : int  3 3 3 3 3 4 3 3 3 3 ...
 $ minute    : int  4 4 18 6 4 38 4 5 6 5 ...
 $ second    : int  47 55 38 11 21 44 57 7 0 12 ...
 $ price     : int  3512 3543 3514 3506 3516 3500 3515 3505 3530 3513 ...
 - attr(*, ".internal.selfref")=<externalptr>

Re: time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 08, 2020 11:41 am
von jogo
Hallo Niklas,

Code: Alles auswählen

DeinDataframe$TagZeit <- with(DeinDataframe, paste0(year, "-", month, "-", day, " ", hour, ":", minute, ":", second))
(wahrscheinlich ist es mit sprintf() hübscher)

Code: Alles auswählen

DeinDataframe$TagZeit <- with(DeinDataframe, sprintf("%d-%d-%d %d:%d:%d", year, month, day, hour, minute, second))
Gruß, Jörg

Re: time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 08, 2020 12:38 pm
von niklas1993
Hallo Jörg,

ja super der zweite Befehl funktioniert genau.

Beim Durchführen der Regression ist der Output nur mit NA bestückt. Nur der Intercept hat Werte

Code: Alles auswählen

reg1 <- lm(price ~ TagZeit, data=data)
summary(reg1)

Re: time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 08, 2020 12:52 pm
von jogo
Hallo Niklas,
niklas1993 hat geschrieben: Mo Jun 08, 2020 12:38 pm ja super der zweite Befehl funktioniert genau.
schön. Beim ersten hatte ich mich vertippt: ein Punkt statt einem Komma.
Beim Durchführen der Regression ist der Output nur mit NA bestückt. Nur der Intercept hat Werte

Code: Alles auswählen

reg1 <- lm(price ~ TagZeit, data=data)
summary(reg1)
Die unabhängige Variable $TagZeit ist ein character - damit lässt sich sehr schlecht eine Regression rechnen. Du könntest jetzt aber mit einer Funktion aus lubridate diese Zeichenketten in ein ordentliches Datum umwandeln ...

Gruß, Jörg

Re: time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 08, 2020 1:02 pm
von niklas1993
ja das ist eine gute Idee.

Code: Alles auswählen

Datum <- ymd_hms(TagZeit) 
ist das zu einfach gedacht?

Re: time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 08, 2020 1:15 pm
von jogo
Hallo Niklas,
niklas1993 hat geschrieben: Mo Jun 08, 2020 1:02 pm ja das ist eine gute Idee.

Code: Alles auswählen

Datum <- ymd_hms(TagZeit) 
ist das zu einfach gedacht?
nein, nur musst Du noch die Stuktur Deiner Daten berücksichtigen.

Code: Alles auswählen

data$TuZ <- ymd_hms(data$TagZeit) 
reg1 <- lm(price ~ TuZ, data=data)
summary(reg1)
oder gleich

Code: Alles auswählen

summary(lm(price ~ ymd_hms(TagZeit), data=data))
Gruß, Jörg
p.s.:
Bitte lies viewtopic.php?f=20&t=29

Re: time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 08, 2020 1:39 pm
von niklas1993
klasse das funktioniert so, danke.

Re: time-stamp variable mit lubridate erzeugen

Verfasst: Mo Jun 15, 2020 3:16 pm
von niklas1993
hallo ich habe nochmal eine weitere frage:

und zwar gibt es eine Funktion wo ich den genauen Wochentag ausgeben kann: also ich habe ja im ganzen Datensatz in der TuZ Spalte ein exaktes Datum. Nun möchte ich wissen welcher Wochentag das ist und in einer neuen Spalte ausgeben.

Vielen Dank und viele Grüße