/inst/extdata

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

natacha nikolic
Messages : 9
Enregistré le : 04 Nov 2010, 10:13

/inst/extdata

Messagepar natacha nikolic » 29 Mar 2012, 22:16

Bonjour,

Apparemment j'aurai une erreur dans mon package concernant la direction que je donne sur des fichiers autres que des .rda

J'ai mis ces fichiers dans un répertoire /inst/extdata

Et dans le man, sur l'exemple de ma fonction j'ai mis:

Fonction (File = "../NomPackage/inst/extdata/job.Batch")

Quand je fais mon R CMD check NomPackage
je n'ai aucun messages d'erreurs et warnings sous Windows.

Mais en passant sous linux il y a cette erreur:

cannot open file '../NomPackage/inst/extdata/job.Batch': No such file or
directory

Pourtant quand je fais un dir(system.file("extdata", package="NomPackage"))

je vois bien mon fichier!

J'ai donc essayé d'autre lien comme:

(File = file.path(NomPackage,"inst","extdata","job.Batch")
(File = system.file("inst","extdata","job.Batch",package="NomPackage")

mais sans succès.

Quelqu'un aurait-il déjà rencontré ce problème?

P.S: je me suis rendue compte que dans le .Rcheck /inst disparait, il ne reste plus que /extdata

Natacha

Maxime Hervé
Messages : 427
Enregistré le : 03 Mar 2010, 14:21
Contact :

Messagepar Maxime Hervé » 30 Mar 2012, 06:10

Bonjour,

je vous confirme qu'une fois le package installé, le dossier "inst" disparaîtra. Il faut donc donner un chemin qui va directement dans "NomPackage/extdata". Au passage, si vous voulez une solution multi-plateforme, je vous conseille d'utiliser ça :

Code : Tout sélectionner

File=file.path(.path.package(NomPackage),"extdata","job.Batch",fsep=.Platform$file.sep)

Cette formulation un pou lourde permet (i) de trouver le package où qu'il soit installé et (ii) de gérer les chemins quel que soit le système d'exploitation (ils ne s'écrivent pas de la même façon sous Windows et Linux par exemple).

Maxime

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

Messagepar jean lobry » 30 Mar 2012, 18:04

Maxime Hervé a écrit :

Code : Tout sélectionner

File=file.path(.path.package(NomPackage),"extdata","job.Batch",fsep=.Platform$file.sep)


Bonjour,

Une autre solution plus compacte :

Code : Tout sélectionner

File = system.file("extdata/job.Batch", package = "NomPackage")

Très cordialement,

Jean Lobry

Maxime Hervé
Messages : 427
Enregistré le : 03 Mar 2010, 14:21
Contact :

Messagepar Maxime Hervé » 30 Mar 2012, 19:05

jean lobry a écrit :Une autre solution plus compacte :

Code : Tout sélectionner

File = system.file("extdata/job.Batch", package = "NomPackage")

Est-ce que le / dans "extdata/job.Batch" est bien reconnu par toutes les plates-formes ?

Maxime

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

Messagepar jean lobry » 30 Mar 2012, 20:54

Maxime Hervé a écrit :Est-ce que le / dans "extdata/job.Batch" est bien reconnu par toutes les plates-formes ?

Bonjour,

Oui, pas de problème particulier, exemple vécu ici avec mon petit paquet seqinr.

Très cordialement,

Jean Lobry

natacha nikolic
Messages : 9
Enregistré le : 04 Nov 2010, 10:13

Messagepar natacha nikolic » 02 Avr 2012, 20:11

Merci pour vos réponses.
Les deux fonctionnent sous windows mais je dois le tester sous linux pour être sûre.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité