2017-11-28 2 views
1

PROBLEM:schreiben Frames mehr Daten-CSV-Datei mit purrr :: map

Ich habe eine Liste von Datenrahmen, die als CSV-Dateien auf der Festplatte geschrieben werden sollen.

Angenommen dies die Liste der Datenrahmen ist:

dfs <- list(iris, 
      mtcars) 

WAS NICHT ARBEITEN:

habe ich versucht, die richtigen Dateinamen so zu bauen, aber es hat nicht funktioniert:

dfs %>% 
    map(~paste0("data-raw/", ., ".csv")) 

Ich hoffte, dass dieses Bit die Dateinamen als Strings korrekt zurückgeben würde. Stattdessen hat map jede Spalte und jeden Wert dem paste0 Aufruf zugeordnet.

Ich habe auch versucht, die deparse(substitute(.)) Trick, aber die . wurde nicht korrekt in der map Anruf berechnet.

Der nächste Schritt wäre, die Datenrahmen (Elemente von dfs) als CSV-Dateien zu schreiben.

FRAGT:

Wie kann ich purrr::map (oder ein ähnliches appraoch) jeden Datenrahmen (jedes Element dfs) als csv-Datei auf der Festplatte zu schreiben, mit write_csv?

+0

Ihre Frage ist ein Duplikat von [dieser Q & A] (https://stackoverflow.com/questions/35898812/r-read-and-write-multiple-csv-in-a-loop). Da die Antwort nicht akzeptiert wurde, kann ich Ihr Q nicht als Duplikat kennzeichnen. Bitte überprüfen Sie die Antwort, die hoffentlich eine Antwort auf Sie gibt, und upvote danach, damit ich Ihre Frage markieren. Falls es nicht funktioniert, kann ich dich immer noch unterstützen. Auch [dieses Q & A] (https://stackoverflow.com/questions/33054315/write-multiple-csv-files-in-a-loop) könnte für Sie interversieren. –

+0

Danke für die Unterstützung. Das funktioniert teilweise: 'lapply (seq_along (dfs), Funktion (i) paste0 (" data-row/", ich," .csv "))' - aber ich brauche Dateien wie 'mtcars.csv' anstatt '1.csv', die von diesem Aufruf zurückgegeben wird. –

Antwort

1

versuchen Sie dies.

list(iris = iris, mtcars = mtcars) %>% 
    names(.) %>% 
    map(~ write_csv(dfs[[.]], paste0("data-raw/", ., ".csv"))) 
Verwandte Themen