[Résolu] Récupérer les informations sur les dépendances externes des paquets R (SystemRequirements)

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

[Résolu] Récupérer les informations sur les dépendances externes des paquets R (SystemRequirements)

Messagepar jean lobry » 14 Déc 2020, 17:56

Bonjour,

avec :

Code : Tout sélectionner

cp <- available.packages(repos = "https://pbil.univ-lyon1.fr/CRAN")
cp <- as.data.frame(cp)


je peux déjà récupérer pas mal d'informations sur les paquets R disponibles pour moi. La documentation de la fonction available.packages() me dit : «A matrix with one row per package, row names the package names and column names including "Package", "Version", "Priority", "Depends", "Imports", "LinkingTo", "Suggests", "Enhances", "File" and "Repository". Additional columns can be specified using the fields argument.». Comme c'est SystemRequirements qui m'intéresse j'ai essayé :

Code : Tout sélectionner

cpsr <- available.packages(repos = "https://pbil.univ-lyon1.fr/CRAN", fields = "SystemRequirements")
cpsr <- as.data.frame(cpsr)


Mais je ne récupère que des NA :

Code : Tout sélectionner

> all(is.na(cpsr$SystemRequirements))
[1] TRUE


Une idée d'où-ce que je me suis enduit d'erreur ?

Bien amicalement,

jean lobry

P.-S. les infos de ma session :

Code : Tout sélectionner

> sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.7

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib

locale:
[1] fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] MASS_7.3-53     compiler_4.0.3  seqinr_4.2-4    htmltools_0.4.0 tools_4.0.3   
 [6] yaml_2.2.1      Rcpp_1.0.4.6    rmarkdown_2.5   knitr_1.30      ade4_1.7-15   
[11] xfun_0.19       digest_0.6.25   rlang_0.4.6     evaluate_0.14

Sébastien Rochette
Messages : 54
Enregistré le : 03 Juil 2020, 12:43
Contact :

Re: Récupérer les informations sur les dépendances externes des paquets R (SystemRequirements)

Messagepar Sébastien Rochette » 14 Déc 2020, 20:40

Bonsoir,

Vous pouvez vous inspirer de ce qu'à fait RStudio ici : https://github.com/rstudio/r-system-requirements/blob/master/test/get-sysreqs.R
Sébastien
Dev, Consult, Formateur
ThinkR

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Re: Récupérer les informations sur les dépendances externes des paquets R (SystemRequirements)

Messagepar jean lobry » 15 Déc 2020, 06:33

C'est parfait, merci !

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: [Résolu] Récupérer les informations sur les dépendances externes des paquets R (SystemRequirements)

Messagepar Pierre-Yves Berrard » 15 Déc 2020, 07:58

Par curiosité, ça marche dans quels cas cet argument fields ?

J'ai essayé d'autres valeurs que "SystemRequirements" : "URL", "Encoding"...
Systématiquement une colonne remplie de NA.
PY

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: [Résolu] Récupérer les informations sur les dépendances externes des paquets R (SystemRequirements)

Messagepar Mickael Canouil » 15 Déc 2020, 08:56

Bonjour,

C'est curieux que l'information ne soit pas accessible via available.packages() quand elle l'est via packageDescription(, fields = "SystemRequirements").

Pourquoi alors ? J'ai regardé^^
Available.packages() télécharge un fichier rds depuis le dépôt cible (par exemple, "http://cran.rstudio.com/src/contrib/PACKAGES.rds") et celui-ci ne contient qu'une partie des champs des fichiers DESCRIPTION :
Package, Version, Priority, Depends, Imports, LinkingTo, Suggests, Enhances, License, License_is_FOSS, License_restricts_use, OS_type, Archs, MD5sum, NeedsCompilation, Path.

De ce fait, le champ "fields" ne sert pas à grand chose pour ne pas dire à rien.
En fait on peut carrément le dire : il sert strictement à rien, puisque les colonnes requises par available.packages (tools:::.get_standard_repository_db_fields()) sont exactement celles citées ci-dessus.

Conclusion, la fonction est bonne, la source des données moins ...

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité