2016-07-29 10 views
0

Der Datenrahmen mit denen ich arbeite:Wie erstellt man eine Datums-/Uhrzeitspalte in einem Datenrahmen in R?

head(ossub3) 

date---------|os5 | os6 | os7| os8 | _ _Year| Month|Day|Hour|Minutes 
11/15/2015|10.06|16.94|10.63|12.94 |2015|11|15| 12|08 

Ich habe alle Zeiteinheiten in Spalten getrennt. Ich würde eine Datetime-Spalte in R. Ich mag die Lösungen auf R tick data : merging date and time into a single object versucht habe und auf Strip the date and keep the time, weil, wenn ich versuche zu

#Combine Date 

ossub3$Date<-as.POSIXlt(paste(ossub3$Year, ossub3$Month, ossub3$Day, sep="-"), 
    tz = "US/Central", format = "%Y-%m-%d") 

#Create new column called Time which concatenates Hour, Minute as a POSIXlt 

ossub3$sec=rep(00,nrow(ossub3)) 
ossub3$Time<-as.POSIXlt(paste(ossub3$Hour, ossub3$Minute,ossub3$sec, sep=":"), 
    tz = "US/Central", format = "%H:%M") 

ich den heutigen Datum in meiner Zeit bekommen, damit ich es nicht mit dem Datum kombinieren. Was geht hier vor sich?

Antwort

1

Ein letzter Schritt ist erforderlich:

ossub3$sec=rep(00,nrow(ossub3)) 
ossub3$Time<-as.POSIXlt(paste(ossub3$Hour, ossub3$Minute,ossub3$sec, sep=":"), tz = "US/Central", format = "%H:%M") 

# Excluding the date information and preserving just the time 
ossub3$JustTime <- sapply(ossub3$Time, function(x) {format(x, format = "%T")}) 

Auf diese Weise Sie die Datumsinformationen werden entfernt (die das aktuelle Datum und bedeutungslos in Ihrem Fall ist), und Sie können befestigen gerade die Zeit zu das Datum, das Sie in der anderen Spalte haben (ossub3$Date).

+0

Hey Matin-I könnte völlig inkompetent sein, aber ich gebe den Code wie geschrieben ein und ich habe einen Fehler bekommen. Speziell Fehler während der Nachbearbeitung: ungültiges 'trim' Argument. Muss ich "x" etwas machen oder fehlt etwas? – werner2

+0

Es sollte explizit 'format ="% T "' erwähnt werden. Überprüfen Sie die Antwort jetzt. –

+0

Ich frage mich, ob Sie die aktualisierte Antwort überprüft haben. Wenn dies die Lösung ist, markieren Sie bitte meine Antwort als Antwort auf Ihre Frage. –