r : 작업보기의 패키지에 관련 vignettes 또는 demos가 있는지 알리는 방법

StackOverflow https://stackoverflow.com//questions/22009048

문제

패키지를 설치하지 않고 주어진 작업보기의 패키지가 vignettes 또는 demos가 관련된 어떤 패키지를 찾는지 알아 보려면 빠른 방법이 있습니까?주어진 작업보기에있는 패키지가 어떤 패키지가 어떤 패키지가 어떤 패키지가 어떤 패키지가 있는지 알아 냈습니다.

library(ctv)
# get all the available task views
taskviews<-available.views()

# get task view of interest (e.g. "TimeSeries")
tv_of_interest<-taskviews[[which(sapply(taskviews,'[',1)=="TimeSeries")]] 

# get all the packages in the task view
pckgs <- tv_of_interest[['packagelist']][1]
.

여기에 시도한 것이지만 이미 가지고있는 패키지 만 고려할 때만 시도가 옳지 않습니다.

vignette(package= c(pckgs)) 
browseVignettes(package= c(pckgs))
demo(package=c(pckgs))
.

나는 그것에 대한 경험이 없기 때문에 긁힘을 피하기를 희망하지만, 아마도 그것은 유일한 방법입니다.이견있는 사람?

도움이 되었습니까?

해결책

CRAN의 vignettes 폴더의 존재 여부를 긁을 필요가 없습니다.효율성을 위해 httrHEAD를 사용하십시오.

hasvig <- function(packagename){
    require(httr)
    url = paste0(getOption("repos"),"/web/packages/",packagename,"/vignettes")
    c = HEAD(url)
    return(c$status_code==200)
}
.

유도에 의한 증명 :

> hasvig("sp")
[1] TRUE
> hasvig("abd")
[1] FALSE
.

그것은 그것들을 위해 작동하므로 모든 것을 위해 작동합니다.

원하는 경우 벡터를 벡터합니다 :

> hasvigs = Vectorize(hasvig)
> hasvigs(c("sp","abd","Rcpp"))
   sp   abd  Rcpp 
 TRUE FALSE  TRUE 
.

패키지에 데모가 있는지 알 수있는 유일한 방법은 소스 아카이브 파일을 다운로드하고 데모 하위 디스크가 있는지 확인하는 것입니다. - CRAN 사이트는 소스 코드를 추출했고 메타 데이터에 저장되지 않은 경우가능하지만 지저분한 느낌은 모든 패키지를 테스트하기 위해 모든 CRAN을 다운로드해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top