我是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"
它仍然是新目录 有没有更好的方法来恢复原始目录? “”“
答案 0 :(得分:0)
我们可以为原始目录分配一个标识符,然后再将其设置为当前目录,最后返回一个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)