2016-07-13 13 views
0

Also ich möchte Änderungen an Datenrahmen basierend auf den Namen der Dateien vornehmen. Wenn also im Dateinamen eines Datenrahmens "angepasst" wird, möchte ich eine Variable namens "adjusted" hinzufügen. Ich denke, es würde ähnlich aussehen wie das, was ich unten gemacht habe, aber offensichtlich gibt es "Dateinamen" nicht, aber ich konnte nicht herausfinden, ob es irgendeine Funktion in R gibt, die mich das auf diese Weise tun lassen würde.Wie Änderungen an einem DF basierend auf dem Namen der Dateien in R vorgenommen werden?

files = list.files(pattern="*.dta") 
dflist <- list() 

for (i in 1:length(files)){ 
    dflist[[i]] <- read.dta13(files[i], nonint.factors = TRUE) 

    if("adjusted" %in% filenames(dflist[[i]])){    
    dflist[[i]]$adjusted <- "yes"} 
} 

Antwort

0

Ich denke, Sie waren wirklich nah an Ihrer ursprünglichen Funktion. Ersetzen Sie einfach %in% durch die grepl() Funktion und verweisen Sie auf Ihre files Liste. Versuchen Sie Folgendes:

files = list.files(pattern="*.dta") 
dflist <- list() 

for (i in 1:length(files)) { 
    dflist[[i]] <- read.dta13(files[[i]], nonint.factors = TRUE) 

    if(grepl("adjusted", files[[i]]) == TRUE) { 
    dflist[[i]]$adjusted <- "yes" 
    } 
} 
Verwandte Themen