Ich möchte csv-Dateien in eine for-Schleife schreiben. Angenommen, ich habe einen Datenrahmen data
mit 3 Zeilen, um es einfach zu machen, von einer Variablen x
. Am Ende möchte ich, dass meine Ausgabe 200 CSV-Dateien sind, von denen jede eine Zeile mit den Daten enthält. Die erste Spalte der Daten ist die Identifikation ("ID") meiner Variablen.Schreiben Sie .csv in eine for-Schleife
Darüber hinaus werden meine Daten wie folgt beschrieben:
data:
ID x
[1] a 1
[2] b 2
[3] c 3
for (i in nrow(data)){
write.csv(data[i,2], file = paste0("Directory/", "data[i,1], ".csv"))
}
ich diesen Code ausführen und eine CSV-Datei erstellt wird. Allerdings wird nur die letzte Zeile erstellt, was bedeutet, dass ich mit nur einer Datei c.csv
gefunden habe.
Wissen Sie, was ich falsch mache? Ich dachte, dass es automatisch alle Archive erstellen würde. Soll ich zuerst die Ergebnisse in einer Liste speichern und dann exportieren?
vielleicht zähle ich nicht, aber es scheint etwas mit Ihren Anführungszeichen zu haben. Hast du den Code 1: 1 kopiert und eingefügt? – patrick
'nrow (data)' ist eine Zahl, nicht ein Haufen Zahlen, die durchlaufen werden müssen. Sie benötigen '1: nrow (Daten)' oder 'seq (nrow (Daten))'. Oder benutze einfach 'lapply'. Außerdem hast du ein extra Zitat zu '" data [i, 1] '. – alistaire
Die Antwort von @Rafael ist genial. Aber ich vermute, dass es zu komplex ist, um zu veranschaulichen, warum dein Code nicht funktioniert. Schau dir die Code unten und vergleichen Sie es mit Ihren eigenen. Beachten Sie, wo ich die Apostrophe verwenden. 'für (i in 1: nrow (Daten)) { write.csv (Daten [i, 2], file = paste0 (" Verzeichnis/", data [i, 1]," .csv ")) }' Auch allgemeine Tipp in R. Rufen Sie nie Ihre Daten "Daten". Nennen Sie es "dat" oder "data1", wenn Sie es brauchen. – paleo13