R のライブラリと install.packages 関数を置き換える関数を作成しようとしています。これは、インストールされている場合は関数をロードし、インストールされていない場合はインストールしてロードします。最初のケースでは問題なく動作しますが、インストール後でもこれを使用して関数をインストールしようとすると、「... という名前のパッケージがありません」というエラーが表示されます。パッケージは正しくインストールされますが、同じ機能の 1 回の実行でインストールとロードに失敗しました。それが修正されることを期待して sleep コマンドを追加しましたが、修正されませんでした。理由を知っている人はいますか?
insist = function(name){
#enables entering package name without quotes
name = substitute(name)
name = as.character(name)
if (!require(name, character.only = T)) {
install.packages(name)
Sys.sleep(2)
library(name, character.only = T)
}
}