你可以使用Suggests,並且在需要包的函數中你可以添加代碼到require()
表示包,如果不可用則拋出一個錯誤。我所熟悉的,純素包,例,在其描述中
Depends: permute
Suggests: MASS, mgcv, lattice, cluster, scatterplot3d, rgl, tcltk
和裝載包有:
R> require(vegan)
Loading required package: vegan
Loading required package: permute
This is vegan 1.90-0
和sessionInfo()
報告,沒有任何建議安裝的軟件包的至今還沒有加載/附加等:
R> sessionInfo()
R version 2.13.1 Patched (2011-07-29 r56550)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C
[3] LC_TIME=en_GB.utf8 LC_COLLATE=en_GB.utf8
[5] LC_MONETARY=C LC_MESSAGES=en_GB.utf8
[7] LC_PAPER=en_GB.utf8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.utf8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] vegan_1.90-0 permute_0.5-0
loaded via a namespace (and not attached):
[1] tools_2.13.1
這正是我所期待的。謝謝。 –
+1此策略對於misc軟件包來說可能是合適的:'爲了安裝軟件包,不需要安裝'建議'軟件包。對於一個misc包來說,這可能是一個很大的優勢。例如。即使rgl無法安裝在他們的機器上,用戶也可以使用素食的非rgl部分。在這種情況下,只有rgl-using函數不可用。 – cbeleites
@cbeleites這就是Jari Oksanen(主要素食主義者開發人員)選擇使用Suggests來製作我們使用的額外軟件包的原因。 –