Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可用的CRAN渐晕图_R_Data.table_Cran_Vignette - Fatal编程技术网

可用的CRAN渐晕图

可用的CRAN渐晕图,r,data.table,cran,vignette,R,Data.table,Cran,Vignette,有available.packages()函数列出CRAN上可用的所有包。是否有类似的功能来查找所有可用的渐晕图?如果不是的话,我怎么才能得到一份所有渐晕图及其相关包的列表 作为一个特例,请记住数据。表包有3个与之相关的小案例 编辑:根据安德烈的回答,我意识到我不清楚。我知道vignette函数用于查找所有可用的本地vignette,我正在寻找一种方法来获取CRAN上所有软件包的所有vignette。函数vignette()和browseVignettes()列出您机器上安装的所有软件包的vig

available.packages()
函数列出CRAN上可用的所有包。是否有类似的功能来查找所有可用的渐晕图?如果不是的话,我怎么才能得到一份所有渐晕图及其相关包的列表

作为一个特例,请记住
数据。表
包有3个与之相关的小案例


编辑:根据安德烈的回答,我意识到我不清楚。我知道vignette函数用于查找所有可用的本地vignette,我正在寻找一种方法来获取CRAN上所有软件包的所有vignette。

函数
vignette()
browseVignettes()
列出您机器上安装的所有软件包的vignette

vignette(package="data.table")

Vignettes in package ‘data.table’:

datatable-faq                         Frequently asked questions (source, pdf)
datatable-intro                       Quick introduction (source, pdf)
datatable-timings                     Timings of common tasks (source, pdf)
browseVignettes()

browseVignettes(package="data.table")

Vignettes found by browseVignettes(package = "data.table")

Vignettes in package data.table

Frequently asked questions - PDF  R  LaTeX/noweb 
Quick introduction - PDF  R  LaTeX/noweb 
Timings of common tasks - PDF  R  LaTeX/noweb 

我似乎记得在回答某个SO问题(现在找不到)时看到了这一点,并决定,由于信息不包括在
available.packages()
的输出中,也不包括在将
readRDS
应用于
@CRAN/web/packages/packages.rds
(Jeroen Ooms的一个技巧)的结果中,我想不出一个非刮式的方法来做这件事

这是我的刮刀,适用于前100个包(导致44个小插曲)


pkgs谢谢Andrie,实际上我想要的是CRAN提供的完整的小插曲列表,而不仅仅是本地安装的软件包。我认为这可能比我希望的要困难一些。您可以解析(例如,使用
XML
RCurl
)CRAN上的所有包索引,尽管我很确定系统管理员不会喜欢这里的这个想法。我似乎记得在回答一些问题时看到过这个(现在找不到)并决定,由于信息不包括在
available.packages()
的输出中,也不包括在将
readRDS
应用于
@CRAN/web/packages/packages.rds的结果中(Jeroen Ooms的一个技巧),我想不出一个非刮削的方法来做这件事…这将是一个为CRAN设计的软件包的一部分,所以刮削方法不是最好的方法,除非。。。我可以抓取一次并将信息作为数据集存储在包中,该数据集会随着包的每个新版本而更新。“也许有一种可能性。”本博克,你能把这句话作为回答,让我接受吗?这不是我希望得到的答案,但我认为可能会有结果。我想我会勉强使用这个或修改过的版本,并将输出作为数据集包含在包中。谢谢,不过我可能会放弃伟哥的广告。我尝试了上面的功能,但遇到了问题。当您使用
粘贴0时,我消除了
,sep=“”
。但是当我试着运行v部分时。它在20%时停止,并给出以下错误:
readRDS(tmp.rds)中的错误:从连接读取错误
关于如何克服此问题的任何想法?我做错了什么?不知道。也许某个地方有一个损坏的index.rds文件?您可以在
readRDS
周围插入另一个
try
语句,以便跳过它。。。因为函数使用了
ldply
,所以它不能访问当前正在处理的包的名称;这可能值得一提,并使用
for
循环以提高透明度……这允许我继续运输,但随后抛出一个错误:
列表到数据帧(res,attr(.data,“split_labels”):结果必须全部是原子的,或所有数据帧
您需要检查
try(readRDS(…)的结果
并在出现错误时返回
NULL
。我将尝试编辑。
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")])