私はいくつかのSOの質問に応答して、このを見て(今それを見つけることができない)と決定思い出すように見えます情報がavailable.packages()
の出力に含まれていないか、readRDS
から@CRAN/web/packages/packages.rds
(Jeroen Oomsのトリック)を適用した結果に含まれていないため、私はそれを行うための非掻き分けの方法を考えることができませんでした...
H (44のビネットにつながる)最初の100個のパッケージに適用EREの私のスクレーパー、
pkgs <- unname(available.packages()[, 1])[1:100]
vindex_urls <- paste0(getOption("repos"),"/web/packages/", pkgs,
"/vignettes/index.rds", sep = "")
getf <- function(x) {
## I think there should be a way to do this directly
## with readRDS(url(...)) but I can't get it to work
suppressWarnings(
download.file(x,"tmp.rds",quiet=TRUE))
readRDS("tmp.rds")
}
library(plyr)
vv <- ldply(vindex_urls,
.progress="text",
function(x) {
if (inherits(z <- try(getf(x),silent=TRUE),
"try-error")) NULL else z
})
tmpf <- function(x,n) { if (is.null(x)) NULL else
data.frame(pkg=n,x) }
vframe <- do.call(rbind,mapply(tmpf,vv,pkgs))
rownames(vframe) <- NULL
head(vframe[,c("pkg","Title")])
はこれをアップ/クリーンそれをよりコンパクトにする方法があるかもしれませんが、OKに動作するようです。あなたのかき集める/時折更新する戦略は妥当と思われます。または、毎日(または毎週またはそれに合っていると思われるどんなものでも)掻き集めて結果を公開/公開することができたら、そのURLにパッケージにハードコードされた関数を含めるか、うまくフォーマットされたHTMLテーブルを作成する
編集::世界で使用可能なリンクがあり、ダウンロードしても関数内のreadRDSもラップされています私はすべてを包むことができますtry
システム管理者がこのアイデアを愛していないと確信していますが、あなたはCRANのすべてのパッケージインデックスを(例えば 'XML'と' 'RCurl'で)解析できます。 – daroczig
私はこのことをいくつかの質問に答えて(これを見つけることはできません)、情報が 'available.packages()'の出力にも含まれていないことや適用結果'readRDS'を' @CRAN/web/packages/packages.rds'(Jeroen Oomsのトリック)にすると、私はそれを行うための非掻き分けの方法を考えることができませんでした。 –
これは、 CRANを対象としていますので、掻き取り方法は最善の方法ではありません。私は一度掻き集めて、新しいバージョンのパッケージで更新されるパッケージにデータセットとして情報を格納することができます。おそらく可能性がある。 –