2012-03-09 15 views
13

我想達到的東西的調用中的R庫()具有可變作爲參數

libs = c("AER", "gbm", "caret", "MASS", "nnet", "randomForest") 
for (i in libs) { 
    if(!is.element(i, .packages()) { 
    install.packages(i) 
    } 
    library(i) 
} 

呼叫的效果庫(i)不與所述值被存儲在替換我變量i。相反,它試圖加載名爲「我」的庫

有沒有辦法強制我被視爲一個變量,並在庫調用之前解決?

+0

喬蘭的answear是正確的。一個小的改進雖然會使用「.packages(all.available = TRUE)」。這樣你不會只在加載的庫中查找。 – Stanislav 2015-07-08 21:17:36

回答

21

library(...,character.only = TRUE)怎麼樣?

+1

謝謝! R文檔再一次讓我失望...... – 2014-08-29 22:25:25

+1

這個'character.only = TRUE'是什麼意思?我找不到任何文檔。 – Nick 2015-09-19 09:31:44

3

下面是完整的代碼(結合喬蘭的答案和添加「all.available = TRUE」)。

libs = c("AER", "gbm", "caret", "MASS", "nnet", "randomForest") 
for (i in libs){ 
    if(!is.element(i, .packages(all.available = TRUE))) { 
    install.packages(i) 
    } 
    library(i,character.only = TRUE) 
}