Odd POSIXct Funktionsverhalten in R

Ich arbeite mit dem POSIXct-Datentyp in R. In meiner Arbeit beziehe ich eine Funktion ein, die zwei POSIXct-Daten in einem Vektor zurückgibt. Ich stelle jedoch ein unerwartetes Verhalten fest. Ich habe ein paar Beispiele geschrieben, um mein Problem zu veranschaulichen:

# POSIXct returning issue:

returnTime <- function(date) {

  oneDay <- 60 * 60 * 24
  nextDay <- date + oneDay

  print(date)
  print(nextDay)

  return(c(date, nextDay))

}

myTime <- as.POSIXct("2015-01-01", tz = "UTC")

bothDays <- returnTime(myTime)
print(bothDays)

Die print-Anweisungen in der Funktion geben Folgendes aus:

[1] "2015-01-01 UTC"
[1] "2015-01-02 UTC"

Während die print-Anweisung am Ende des Codes lautet:

[1] "2014-12-31 19:00:00 EST" "2015-01-01 19:00:00 EST"

Ich versteheWa passiert, aber ich verstehe nicht warum. Es könnte ein einfacher Fehler sein, der mir entgeht, aber ich bin wirklich ziemlich verwirrt. Ich verstehe nicht, warum sich die Zeitzone bei der Rückkehr ändert. Die Klasse ist auch noch POSIXct, nur die Zeitzone hat sich geändert.

Zusätzlich habe ich dasselbe wie oben gemacht, aber nur eines der Daten zurückgegeben, und die Zeitzone des Datums hat sich nicht geändert. Ich kann das jetzt umgehen, wollte aber sehen, ob jemand einen Einblick in mein Problem hat. Danke im Voraus

Vielen Dank für die Hilfe unten. Ich habe stattdessen:

 return(list(date, nextDay))

und dies löste mein Problem mit der Zeitzone, die gelöscht wurde.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage