4 votes

R script ne peut pas lire le fichier .Rda lorsqu'il est exécuté depuis Java

Je suis nouveau dans Rscript alors s'il vous plaît soyez avec moi, j'ai besoin d'exécuter un R script (écrit par un autre développeur) à partir de java et pour cela j'utilise Renjin . Le fichier R script et les autres fichiers requis sont sur classpath c'est-à-dire sous le dossier des ressources.

Pour cela, je charge Rscript de classpath et il est chargé avec succès, et Rscript essaie de charger un abc.Rda en interne qui est également présent dans le classpath (parallèlement à R script), le code pour le même est ci-dessous

load('abc.Rda')

Mais quand j'essaie d'exécuter script alors il jette l'exception comme ci-dessous :

Impossible de lire le fichier "file:///D:/data/{project-dir}/abc.Rda" car il ne s'agit pas d'un fichier.

Veuillez me suggérer où je fais une erreur.

1voto

akbertram Points 839

Je ne suis pas sûr de la raison pour laquelle l'utilisation du chemin absolu ne fonctionne pas : peut-être que le script appelle de manière incorrecte setwd(dir='/bad/{project-dir}') quelque part plus tôt ?

En fait, Renjin gère les opérations du système de fichiers à travers Système de fichiers virtuel Apache (VFS). Ainsi, si vous voulez spécifiquement une ressource sur le classpath, vous pouvez utiliser le protocole "res :", par exemple :

load('res:com/acme/mypackage/abc.Rda')

Cela devrait fonctionner, que le fichier se trouve sur le système de fichiers ou qu'il soit emballé dans un jar ou une autre archive.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X