设置目录并从函数R中加载数据

时间:2015-06-10 17:36:41

标签: r

我正在尝试使用start()函数来设置目录和加载文件,具体取决于我使用的是哪台计算机。遗憾的是,下面的代码不起作用,因为在执行start(“M”)之后,目录不会改变,并且数据对象不存在于环境中。如果我只是单独执行代码行(不将其放在函数中),一切都有效。为什么会这样?如何修改它以使其按预期工作?谢谢你的帮助。

setwdMacbook = function(){
  setwd("~/Dropbox/Rfiles/")
}
setwdWindows = function(){
  setwd("C:/Users/user1/Dropbox/Rfiles")
}
loadDataMacbook = function(){
  load("~/Dropbox/Rfiles/allData1.Rda")
  load("~/Dropbox/Rfiles/aData1.Rda")
  load("~/Dropbox/Rfiles/usrData1.Rda")
}
loadDataWindows = function(){
  load("C:/Users/user1/Dropbox//Rfiles/allData1.Rda")
  load("C:/Users/user1/Dropbox//Rfiles/aData1.Rda")
  load("C:/Users/user1/Dropbox//Rfiles/usrData1.Rda")
}

start = function(whichComputer="M"){
  if(all.equal(whichComputer, "M")){
    setwdMacbook()
    loadDataMacbook()
    print("setwd and load data on personal Macbook")
  }else if(all.equal(whichComputer, "W")){
    setwdWindows()
    loadDataWindows()
    print("setwd and load data on Windows computer at the office")
  }else{
    print("Insert W for Windows computer at the office and M for personal Macbook computer.")
  }
}

start("M")

1 个答案:

答案 0 :(得分:0)

更改load以指定envir参数:

load(..., envir=.GlobalEnv)

否则您只是加载到start呼叫评估的环境中。 setwd应该有用;不知道为什么它不适合你。