ポールの擬似コードを読んだ後、ここに書いた機能があります。
use <- function(package, version=0, ...) {
package <- as.character(substitute(package))
library(package, ..., character.only=TRUE)
pver <- packageVersion(package)
if (compareVersion(as.character(pver), as.character(version)) < 0)
stop("Version ", version, " of '", package,
"' required, but only ", pver, " is available")
invisible(pver)
}
それは基本的にlibrary()
と同じように機能し、余分なversion
引きとります
> use(plyr, 1.6)
> use(ggplot2, '0.9')
Error in use(ggplot2, "0.9") :
Version 0.9 of 'ggplot2' required, but only 0.8.9 is available
感謝を。 'compareVersion()'はバージョン比較に使うべき正しいことです。 –
機能がそこにあった、何かを自分で作ることを試みたが、それは必要なかった:)。 –
@KenWilliams - ニースキャッチ。私はそれを見て、ヘルプページの文で "Rパッケージのバージョン番号は 'x.y-z'の形式になっています。しかし、現実的には、 '' - ''と '' '' ''の両方にstrsplit()のように見えるので、詳細は重要ではありません。 –