Как восстановить исходный файл каталога после цикла? - PullRequest
1 голос
/ 19 апреля 2019

Я новичок в языке R В настоящее время работает над функцией, которая требует установки каталога в первую очередь Допустим, мой оригинальный каталог "C: / Users / DS / Desktop / LLLRRR / coursera / Coursera". После функции ("specdata", ...) она установит каталог в "C: / Users / DS / Desktop / LLLRRR / coursera / Coursera / specdata". Можно ли как-нибудь восстановить исходный каталог в конце цикла?

Мое текущее решение - добавить setwd ("C: / Users / DS / Desktop / LLLRRR / coursera / Coursera") в конце цикла.

pollutantmean <- function(directory,pollutant,id=1:332){
    path<-paste(getwd(),directory,sep="/")
    setwd(path)
    data<-data.frame()
    if(id<10){
      readfile<-paste("00",id,".csv",sep="")
      dt<-read.csv(readfile)
      data<-rbind(data,dt)
    }else if(id>9&id<100){
      readfile<-paste("0",id,".csv",sep="")
      dt<-read.csv(readfile)
      data<-rbind(data,dt)
    }else{
      readfile<-paste(id,".csv",sep="")
      dt<-read.csv(readfile)
      data<-rbind(data,dt)
    }
    return(mean(data[,pollutant], na.rm = T))
}
pollutantmean("specdata", "nitrate", 23)

"" "

pollutantmean("specdata", "nitrate", 23)
[1] 1.280833

getwd()
[1] "C:/Users/DS/Desktop/LLLRRR/coursera/Coursera/specdata"

Остается новый каталог Есть ли лучший способ восстановить исходный каталог? "" "

1 Ответ

0 голосов
/ 19 апреля 2019

Мы можем присвоить исходный каталог идентификатору перед установкой его в текущем каталоге и в конце вернуть list

pollutantmean <- function(directory,pollutant,id=1:332){
    origdir <- getwd() # modified
    path<-paste(origdir,directory,sep="/")
    setwd(path)
    data<-data.frame()
    if(id<10){
      readfile<-paste("00",id,".csv",sep="")
      dt<-read.csv(readfile)
      data<-rbind(data,dt)
    }else if(id>9&id<100){
      readfile<-paste("0",id,".csv",sep="")
      dt<-read.csv(readfile)
      data<-rbind(data,dt)
    }else{
      readfile<-paste(id,".csv",sep="")
      dt<-read.csv(readfile)
      data<-rbind(data,dt)
    }

    list(Mean = mean(data[,pollutant], na.rm = TRUE), Dir = origdir) # modified
}
pollutantmean("specdata", "nitrate", 23)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...