Rスクリプトをスキャンして実際に使用されているパッケージを確認する方法はありますか?これは、スクリプトで呼び出されたすべての関数を見て、これらの関数名を含むパッケージのリストを返すことを意味します。 (私は関数名がどのパッケージにも独占的ではないことを知っています)はどのパッケージが使用されるかを決定します
library()
またはrequire()
というパッケージを見てみませんか?右。さて、スクリプトで実際に使用しているかどうかにかかわらず、よく使うパッケージを読み込むという習慣が悪いです。
私は、未使用のパッケージを削除して他の人と共有しようとしているいくつかのスクリプトをクリーンアップしたいと思います。
私は2016年に自分の道を変えたいと考えています。始めてください。コメント欄で
更新は
いくつかの良いアイデア...
# create an R file that uses a few functions
fileConn<-file("test.R")
writeLines(c("df <- data.frame(v1=c(1, 1, 1), v2=c(1, 2, 3))",
"\n",
"m <- mean(df$v2)",
"\n",
"describe(df) #psych package"),
fileConn)
close(fileConn)
# getParseData approach
pkg <- getParseData(parse("test.R"))
pkg <- pkg[pkg$token=="SYMBOL_FUNCTION_CALL",]
pkg <- pkg[!duplicated(pkg$text),]
pkgname <- pkg$text
pkgname
# [1] "data.frame" "c" "mean" "describe"
アップデート2
の@ニコラのアイデアを実装するための醜い試み:
c()
機能が嫌いですが、結果は正しくないようです。
#[1] "base"
#Error in packageName(environment(get(pkgList[[1]][i]))) :
# 'env' must be an environment
#[1] "base"
#[1] "psych"
RStudioの[Packages]メニューですべてのパッケージを手動でオフにしてから、スクリプトを実行して見つけられない機能を確認できますか?あなたが「ああ」を認識すれば、「溶かす」には「reshape2'''」が必要です。 – Nancy
おそらく 'getParseData'、概要[ここ](http://stackoverflow.com/q/33064376/324364)? – joran
私はスクリプト内で呼び出された関数を決定し、それらの関数のパッケージを与える 'packageName(environment(function))'を実行しようとします。次に、読み込まれたパッケージをチェックし、実際に使用されているパッケージに直面することができます。 – nicola