Als Anfänger möchte ich Sie fragen, welche ist die elegantere/effektivere Weg, große .csv Daten zu reinigen: Ich habe zwei Arten von Lösungen (gefunden mit help()
, hier und in der Literatur) aber ich bin mir nicht sicher, ob es etwas Besseres gibt (zB mit Loops?) kannst du mir vorschlagen.Datenreinigung mit read.csv
Mein (nicht sehr R-friendly) CSV-Daten (523 Zeilen, 47 Spalten, hier nur der Anfang):
;;;
;;;
;;;
Name;#1;#2;#3
Correction;;;
Date;19.09.2016;19.09.2016;19.09.2016
Time;12:05:03;12:06:01;12:07:00
T_int [ms];806;800;884
Ev [lx];1,31E+03;1,35E+03;1,27E+03
Ee [W/sqm] (380-780nm);4,22E+00;4,38E+00;4,17E+00
;;;
;;;
Chrom. Coord.;;;
x;0,3657;0,3642;0,3643
y;0,3842;0,3831;0,3833
u';0,2126;0,2121;0,2121
v';0,5026;0,502;0,5021
;;;
ich nur bei der Auswahl einiger Informationen interessiert bin (etwa 450 der 523 Zeilen) und eine transponierte Datenrahmen, wie am Ende:
Date Time Ev # ...
V2 2016-09-19 12:05:03 1310 # ...
V3 2016-09-19 12:06:01 1350 # ...
V4 2016-09-19 12:07:00 1270 # ...
# [...]
die Art und Weise habe ich versucht, lautet:
Date <- t(read.csv2("filename", nrows=1, skip=5, header=F)[,-1])
Time <- t(read.csv2("filename", nrows=1, skip=6, header=F)[,-1])
Ev <- t(read.csv2("filename", nrows=1, skip=8, header=F)[,-1])
# [...] (for all the about 450 choosen vectors!!!)
df <- data.frame(Date = Date, Time = Time, Ev = Ev) # ...
und
columns <- c(n1, n2, n3, n4, n5, Date, Time, n6, Ev) # [...]
raw_csv <- t(read.csv2("filename", header=F, col.names = columns, colClasses = c(rep("NULL",5),rep("Date",2),"NULL","numeric")) # ...
df <- data.frame(raw_csv)
Ich fühle mich wie ich nicht in der Lage bin, etwas besser strukturiert, finden das heißt Vermeidung von 450 mal separat zu definieren, was Ich mag würde haben und wo sie zu finden.
In beiden Fällen erreiche ich nicht einmal mein Ziel, wegen der Lücken in den .csv, Klammern und so weiter. Zu viele Probleme zur gleichen Zeit, denke ich ...
Vielen Dank für Ihre Hilfe!
hat die Anzahl der Datum/Uhrzeit übereinstimmt mit der Anzahl der Zeilen für Ihre Daten? –
Ja, am Ende sollte es mit der Anzahl der Zeilen meiner endgültigen Daten übereinstimmen. – proiemi