2013-10-19 26 views
13

Rscript kullanarak bash kabuğu aracılığıyla birkaç komut dosyasını çalıştırmam gerekiyor ve kullandığım bazı işlevler isGeneric işlevini gerektiriyor. Ancak, bu durumda işlem (örneğin) bu şekilde sona:Rscript işlevi bulamıyor

Error in .getLogLik() : could not 
find function "isGeneric" 
Calls: main -> dredge -> .getLik -> .getLogLik 
Execution halted 

Bu çoğaltılabilir

# in the bash shell 
echo "isGeneric('apply')" > /tmp/test.R 
Rscript /tmp/test.R 

Sonuç aşağıdaki gibi:

Error: could not find function "isGeneric" 
Execution halted 

Ancak, açarsanız bir R oturumu yazın ve aşağıdakileri yazın:

# in the R shell 
isGeneric('apply') 
[1] FALSE 

Sorunun nereden geldiğini ve nasıl düzeltileceğini biliyor musunuz?

cevap

21

help(Rscript), Rscript uyarınca, zaman alıcı olduğundan, yöntem paketini varsayılan olarak yüklemez. Yani komut satırında bunu belirtmeniz gerekir ya:

Rscript --default-packages=methods file.R 

Ya library(methods) aradığınız dosyanın en üstünde.

+0

Teşekkürler Joshua, şu anda gayet iyi çalışıyor. Üzgünüm, 'isGeneric' ve 'methods' paketi arasındaki bağlantıyı görmedim. –

+0

@LudoDuvaux: Endişelenme yok. Bu konuyla daha önce karşılaşmadıkça bariz bir bağlantı değil. –

+3

Sadece 'Hata: işlevi bulamadı' ile karşılaştım. Orada daha da açık bir bağlantı var! – DavidC