R:كيفية معرفة الحزم الموجودة في طريقة عرض المهام التي ربطت المقالات القصيرة أو العروض التوضيحية
سؤال
بدون تثبيت الحزم, هل هناك طريقة سريعة لمعرفة الحزم في عرض مهمة معين التي تحتوي على المقالات القصيرة أو العروض التوضيحية المرتبطة بها?لقد اكتشفت كيفية معرفة الحزم الموجودة في عرض مهمة معين من ص:
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
الطريقة الوحيدة لمعرفة ما إذا كانت الحزمة تحتوي على عرض توضيحي هي تنزيل ملف أرشيف المصدر ومعرفة ما إذا كان يحتوي على موقع تجريبي فرعي - لم تقم مواقع كران باستخراج شفرة المصدر ولا يتم تخزينها في البيانات الوصفية في أي مكان.قابلة للتنفيذ ، ولكن فوضوي ، بطيئة ، يتطلب تحميل كل من كران لاختبار جميع الحزم.