Ich habe einen Datensatz mit Datums- und Zeitangaben für In und Out. Jede Zeile ist ein In- und Out-Set, einige sind jedoch leer. Ich kann die Leerzeichen mit na.omit und einem netten Einlesen entfernen (es war ein csv, und na.strings=c("")
funktioniert auf read.csv
).
Natürlich, weil die reale Welt nie wie das Tutorial ist, sind die Zeiten manchmal nur Datumsangaben, also gibt mein as.POSIXlt(Dataset$In,format="%m/%d/%Y %H:%M")
NA am "einzigen Datum keine Zeit" zurück.
na.omit löscht diese Zeilen nicht. also sind die Fragen 2
Warum funktioniert na.omit nicht oder wie kann ich es zum Laufen bringen?
Besser, wie kann ich eine Spalte sowohl im Datums- als auch im Zeitformat (im Posix-Format) ohne 2 Aufrufe oder mit einem beliebigen optionalen Parameter in der Formatzeichenfolge konvertieren? (oder ist das überhaupt möglich?).
Dies ist ein Beispiel für die Daten und Uhrzeiten. Ich kann die echte Datei nicht teilen, 1 ist riesig, 2 ist PII.
%Vor% na.omit
funktioniert nicht mit POSIXlt
-Objekten, da dokumentiert ist, "Vektoren, Matrizen und Datenrahmen zu verarbeiten, die Vektoren und Matrizen (nur)" enthalten. (siehe help("na.omit")
). Und im engeren Sinne sind POSIXlt
-Objekte keine Vektoren:
Es gibt kaum einen Grund, POSIXlt
über POSIXct
vorzuziehen (was eine Ganzzahl ist, die die Anzahl der Sekunden seit dem Ursprung intern angibt und daher weniger Speicher benötigt).
Ihnen wurden ein paar Strategien gegeben, die diese Zeichenwerte in "In-Place" bringen und verarbeiten. Ich verwende fast nie as.POSIXlt
, da es im Umgang mit den Listen-in-List-Strukturen, die zurückgegeben werden, so viele Fallstricke gibt, insbesondere in Anbetracht der effektiven Inkompatibilität mit Datenrahmen. Hier ist eine Methode, die den Test und die Nötigung auf der read.
-Ebene durchführt, indem sie eine as
-Methode:
Die structure
"Hüllkurve" wird benötigt, weil das Verhalten von ifelse etwas merkwürdig ist und sonst eher ein numerisches Objekt als ein Objekt der Klasse'POSIXct 'zurückgibt.
Tags und Links r datetime na missing-data posixct