R:كيفية معرفة الحزم الموجودة في طريقة عرض المهام التي ربطت المقالات القصيرة أو العروض التوضيحية

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

سؤال

بدون تثبيت الحزم, هل هناك طريقة سريعة لمعرفة الحزم في عرض مهمة معين التي تحتوي على المقالات القصيرة أو العروض التوضيحية المرتبطة بها?لقد اكتشفت كيفية معرفة الحزم الموجودة في عرض مهمة معين من ص:

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))

آمل أن أتجنب الكشط ، حيث ليس لدي خبرة في ذلك ، ولكن ربما تكون هذه هي الطريقة الوحيدة.أي أفكار?

هل كانت مفيدة؟

المحلول

لا تحتاج إلى كشط ، مجرد اختبار لوجود vignettes مجلد على شبكة الإنترنت من كران.للكفاءة ، استخدم httr و HEAD:

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 

الطريقة الوحيدة لمعرفة ما إذا كانت الحزمة تحتوي على عرض توضيحي هي تنزيل ملف أرشيف المصدر ومعرفة ما إذا كان يحتوي على موقع تجريبي فرعي - لم تقم مواقع كران باستخراج شفرة المصدر ولا يتم تخزينها في البيانات الوصفية في أي مكان.قابلة للتنفيذ ، ولكن فوضوي ، بطيئة ، يتطلب تحميل كل من كران لاختبار جميع الحزم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top