我正在尝试使用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")
答案 0 :(得分:0)
更改load
以指定envir
参数:
load(..., envir=.GlobalEnv)
否则您只是加载到start
呼叫评估的环境中。 setwd
应该有用;不知道为什么它不适合你。