POSIXct Spalten und Zellen PRoblem

Methoden der Zeitreihenanalyse

Moderator: schubbiaschwilli

Antworten
Konzerthauslise
Beiträge: 1
Registriert: Di Mai 11, 2021 4:04 pm

POSIXct Spalten und Zellen PRoblem

Beitrag von Konzerthauslise »

Hallo Leute,

ich verzweifel gerade ein wenig, weil ich einfach keinen blassen Schimmer habe, wo R das Problem hat. Ich habe einen DataFram mit einer Spalte "Fahrbeginn". Bei der Abfrage

Code: Alles auswählen

is.POSIXct(Dataframe$Fahrbeginn)
gibt er mir ein TRUE aus. Wenn ich jetzt allerdings die einzelne Zelle anspreche aus der Spalte, dann zeigt er mir FALSE an. Ich wollte eigtl aus einzelnen übereinanderliegenden Zellen die difftime bilden. Aber da hat er mir gesagt, dass er ein Problem hat mit dem POSIXct. Daher habe ich dann a <- DataFrame[1,"Fahrbeginn"] erzeugt um mir den Datentyp anzugucken. Da spuckt er mir das aus:

Code: Alles auswählen

tibble[,1] [1 x 1] (S3: tbl_df/tbl/data.frame)
 $ Fahrtbeginn: POSIXct[1:1], format: "2016-12-21 07:39:37"
Demnach ist es doch aber ein POSIXct. Woran liegt es, das R zwar anzeigt, dass es ein POSIXct-Datentyp ist bei str(), aber beim Rechnen oder bei der is.-Abfrage Fehler zeigt oder FALSE zurückgibt? Kann mir da jemand helfen? Das wäre traumhaft!

Liebsten Gruß
Paula

Anmerkung Schubbiaschwilli: Umformatiert in Code
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: POSIXct Spalten und Zellen PRoblem

Beitrag von schubbiaschwilli »

Gude!

Ohne Daten wird dir da niemand weiterhelfen können...

Dank&Gruß
Schubbiaschwilli
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: POSIXct Spalten und Zellen PRoblem

Beitrag von bigben »

Das ist wahrscheinlich einer der Unterschiede zwischen tibble und dataframe schuld; bzw zwischen drop = TRUE oder FALSE. Ein tibble ist halt kein PosixCT.

Probier das hier mal aus:

Code: Alles auswählen

library(tibble)
test_df <- data.frame(a = as.Date(c("2012-01-01", "2012-01-02",
                                    "2012-01-03", "2012-01-30")))
test_tbl <- as_tibble(test_df)

diff(test_df[,1])   # geht, weil es ein Dataframe ist
diff(test_tbl[,1])  # geht nicht, weil es ein Tibble ist
diff(test_tbl[,1, drop = TRUE])   # geht, weil man dem Tibble sagt, dass es sich mehr wie ein Dataframe verhalten soll
HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: POSIXct Spalten und Zellen PRoblem

Beitrag von EDi »

Die Typstabilität ist eine Design-Entscheidung. Find ich auch so, weil drop=TRUE (default vom data.frames) hat mich schon Paar Haare aufm Kopf gekostet...
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.
Antworten