Ich bin neu in R und habe viel mit diesem Problem gekämpft. Versucht, eine Lösung über verschiedene Orte hinweg zu finden, konnte dies aber nicht.
Ich habe einen Ordner mit mehreren CSV-Dateien (etwa 158). Jeder CSV hat eine Spalte mit Datum und Uhrzeit. Ich fand heraus, dass das Format des Datums in csv-Dateien nicht Standard ist, was meine Analysen durcheinander bringt. Beispiel:Importieren von CSV-Dateien mit Datum und Uhrzeit Spalte in verschiedenen Formaten in R: gibt es eine Möglichkeit, es zu standardisieren?
>head(file1) # date format is in MONTH/day/year
DateTime Value
6/2/14 11:00:01 PM 24.111
6/3/14 1:30:01 AM 21.61
6/3/14 4:00:01 AM 20.609
>head(file2) # date format is in day/MONTH/year
DateTime Value
03/06/14 1:30:01 AM 21.588
03/06/14 4:00:01 AM 20.086
03/06/14 6:30:01 AM 18.584
Ich machte die folgende Schleife, um die Dateien zu binden.
>files.names<-list.files(getwd(),pattern="*.csv")
>theList <- lapply(files.names,function(x){
> theData <- read.csv(x,skip=18) })
>theResult <- do.call(rbind,theList)
>head(theResult)
Date.Time Value
1 6/2/14 11:00:01 PM 24.111
2 6/3/14 1:30:01 AM 21.610
3 6/3/14 4:00:01 AM 20.609
4 6/3/14 6:30:01 AM 19.107
5 6/3/14 9:00:01 AM 19.608
6 6/3/14 11:30:01 AM 20.609
Was ich denke,: Ich vermute, dass es einen Weg geben muss das Format der Date.Time
Spalte in der Schleife eines jeden csv vor dem Binden sie zu standardisieren. Das heißt, ich denke ich muss das vor mir machen do.call(rbind,theList)
, aber nicht sicher wie (oder wenn es möglich ist). Formatieren jeder CSV-Datei in Excel wäre ein Schmerz in den Arsch, so würde ich einige Hilfe zu schätzen wissen: P.
Warum können Sie nicht nur lubridate- oder intellidate-Pakete auf "theResult $ Date.Time" verwenden? – Dan
Ja ... vorher. Verwenden Sie as.POSIXct mit Format = "% m /% d /% y% I:% M:% S% p" in einem Fall und "% d /% m /% y% I:% M:% S% p" im anderen Fall. Lies '? Strptime'. Möglich, dass das 'allzeit'-Paket von Wert sein könnte. –
Danke @Dan, ich weiß es zu schätzen. Nachdem ich das 'lubridate'-Paket gegraben hatte, benutzte ich die Funktion' parse_date_time' - bekam auch Hilfe von diesem: (https://stackoverflow.com/questions/26064292/guess-formats-r-lubridate). Ich werde meine Lösung posten. –