2015-06-10 43 views
0

我試圖使用start()函數來設置目錄和加載文件,具體取決於我使用的是哪臺計算機。不幸的是,下面的代碼不起作用,因爲在執行開始(「M」)後,目錄不會改變,並且數據對象不存在於環境中。如果我只是執行的代碼行分開(不把它在一個功能一切正常,這是爲什麼?如何修改它,使它按預期工作?謝謝你的幫助。設置目錄並從一個函數中加載數據R

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

變化load指定。在envir PARAM:

load(..., envir=.GlobalEnv) 

否則你只是裝入start通話評價的環境setwd應該工作,不知道爲什麼它不爲你工作

+0

感謝!這是什麼我需要 知道!是的,現在我用getwd()檢查了它,但是隻是在RStudio中它不會更改文件窗口中顯示的目錄,所以我認爲它也不起作用。謝謝! – olga