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
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
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
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.
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.
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
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