2013-10-25 26 views
9

R paketinde birkaç paket kullanıyorum, ancak betiği, yüklü olan paketlerin bazılarına sahip olabilir veya olmayabilir.Yüklenmezse, paket (kitaplık) yükle

Paketler zoo, quantmod, data.table, ... ve bir demet daha vardır.

Denediğim şudur: Bu paketlerin her birinin yüklü olup olmadığını denetlemenin herhangi bir yolu var mı? R'nin zaten var olan herhangi bir paketi yeniden yüklemek için zaman kaybetmesini istemiyorum.

Bu ben denedim budur:

pckg = c("zoo", "tseries", "quantmod", "MASS", "graphics", "plyr", "data.table", "gridExtra") 

is.installed <- function(mypkg){ 
    is.element(mypkg, installed.packages()[,1]) 
} 

for(i in 1:length(pckg)) { 
    if (!is.installed(pckg[i])){ 
     install.packages(pckg[i]) 
    } 
} 

o yapmanın daha iyi bir yolu var mı?

Ayrıca otomatik olarak numaralı yükleme için bir yansıtma oluşturmam gerekiyor. Bunu nasıl yapacağımı bilmiyorum.

Teşekkürler!

burada durumda
usePackage <- function(p) { 
    if (!is.element(p, installed.packages()[,1])) 
     install.packages(p, dep = TRUE) 
    require(p, character.only = TRUE) 
} 

Eğer küresel CRAN aynayı seçmek gerekirse, biri:

cevap

10

Sonra require bunu s, eksik ise paket yükler Ben library yerine kullanmak bu kolaylık fonksiyonu var Bunu yapmanın yolu:

r <- getOption("repos") 
r["CRAN"] <- "http://cran.us.r-project.org" 
options(repos = r) 
rm(r) 
+1

Bana 'require() 'davranışı R editörüne bağlı olarak bana kalır. Require() ', RKward'ta yukarıda açıklandığı gibi çalışır, ancak RStudio kullanmamıştır. Bunun yerine, RStudio bir uyarı mesajı verir. Bu nedenle, gereksinim (XXX) || install.packages ("XXX") 'daha güvenlidir çünkü kullandığınız düzenleyiciden bağımsız olarak her zaman çalışır. – MERose