2017-02-24 5 views
1

Ich versuche, eine kleine Funktion zu erstellen, die eine Arbeitsumgebung in R einrichten Am Ende wird es nur eine Funktion, wo ich die Ordnerstruktur angeben kann, die ich einrichten möchte I möchte dies als Chance nehmen purrrErstellen von Ordnern mit Walk und Purrr

Below zu lernen, ist mein Code, der in einem Projekt eingerichtet wurde, um den Dateipfad inhärent ist, aber ich bin mit ihm eindeutig nicht richtig

# Setup Project Folders 
library('purrr') 
my_folders <- data.frame(folder = c('scripts','sql','figs','results','data','ref_data','reports')) 
walk(.f = dir.create(file.path(), showWarnings = FALSE),.x =my_folders) 

kann jemand helfen ?

Danke

Antwort

1

Das Problem hier ist, dass dir.create nicht vektorisiert ist jedoch sehen walk auf Ihrem Datenrahmen eine 1-Spalte Datenrahmen dir.create wird passieren, die den Fehler Sie verursachen.

hier wäre mein Ansatz by_row zu verwenden, um sicherzustellen, dass Sie Elemente der Länge 1 bestanden dir.create haben, und den Zwang zu einem Zeichen Vektor erzwingen:

my_folders %>% 
    by_row(function(x) dir.create(as.character(x), 
     showWarnings = FALSE), .collate = "rows", 
     .to = "success") 

Dies nur, wenn Ihr Datenrahmen arbeiten hat eine einzelne Spalte. Um es sicherer:

my_folders %>% 
    by_row(function(x) dir.create(as.character(x$folder), 
     showWarnings = FALSE), .collate = "rows", 
     .to = "success") 

ich ziemlich neu bin purrr so könnte es einen besseren Weg ...