R Script ne peut pas lire.Fichier Rda lorsqu'il est exécuté à partir de Java
Je suis nouveau sur Rscript
alors veuillez supporter avec moi, j'ai besoin d'exécuter un script R (écrit par un autre développeur) à partir de java et pour cela j'utilise Renjin
. Le fichier de script R et les autres fichiers requis se trouvent sur classpath
, c'est-à-dire sous le dossier ressources.
Pour y parvenir, je charge Rscript
à partir de classpath et il est chargé avec succès, et Rscript
essaie de charger un fichier abc.Rda
en interne qui est également présent dans classpath (parallèle au script R), le code pour le même est ci-dessous
load('abc.Rda')
Mais quand j'essaie pour exécuter le script, il lève l'exception comme ci-dessous:
Peut pas lire à partir de "fichier:///D:/données/{projet-dir}/abc.Rda " parce que ce n'est pas un fichier.
Veuillez suggérer où je fais une erreur.
1 answers
Je ne sais pas pourquoi l'utilisation du chemin absolu n'a pas fonctionné: peut-être que le script appelle incorrectement setwd(dir='/bad/{project-dir}')
quelque part plus tôt?
Renjin assure en fait la médiation des opérations du système de fichiers via Apache Virtual File System (VFS). Donc, si vous voulez spécifiquement une ressource sur le chemin de classe, vous pouvez utiliser le protocole " res:", par exemple:
load('res:com/acme/mypackage/abc.Rda')
Cela devrait fonctionner si le fichier est réellement sur le système de fichiers ou empaqueté dans le cadre d'un fichier jar ou d'une autre archive.