J’ai utilisé RcppEigen.package.skeleton () comme modèle pour append une petite fonction à un package R existant, de sorte que mon fichier DESCRIPTION comporte désormais les lignes:
Imports: Rcpp (>= 0.11.3), RcppEigen (>= 0.3.2.3.0) LinkingTo: Rcpp, RcppEigen
Cependant, effectuer la R CMD check --as-cran .tar.gz
donne les éléments suivants:
“Package dans Depends / Imports qui devrait probablement être uniquement dans LinkingTo: ‘RcppEigen'”
La page Writing R Extensions indique: “La spécification d’un package dans” LinkingTo “suffit si ce sont des en-têtes C ++ contenant du code source ou si des liaisons statiques sont effectuées à l’installation: les packages n’ont pas besoin de figurer (et ne doivent généralement pas être) dans la liste” Cela dépend des champs “Importations” ou “Importations”. Cela inclut les packages CRAN BH et presque tous les utilisateurs de RcppArmadillo et RcppEigen. ”
Je ne connais aucun C ++, donc je ne sais pas ce que cela signifie. Ma procédure pour créer le paquet est la suivante: RcppEigen – passage d’une fonction en ligne à une fonction .cpp dans un paquet et “Map”
Peut-on supprimer RcppEigen de “Imports” et pourquoi / pourquoi pas? (c.-à-d. pouvez-vous s’il vous plaît expliquer ce que dit la page Writing R Extension, pour que je puisse comprendre ce que je fais? Les experts en R et en logiciels de mon laboratoire ont dit qu’ils ne comprenaient pas la différence entre “Imports “et” LinkingTo “.)
Brièvement:
Quand je viens d’exécuter la fonction correspondante pour RcppArmadillo, j’ai eu
Imports: Rcpp (>= 0.11.3) LinkingTo: Rcpp, RcppArmadillo
alors je me penche vers un insecte. Et j’ai maintenant ouvert un ticket d’émission pour cela.
Plus généralement, les différences entre LinkingTo: et Imports: sont
So Writing R Extensions, ou le livre en ligne de Hadley pour plus de détails.