2017-08-30 6 views
-1

J'ai cette fonction dans R et je veux l'appeler en python. J'ai l'intention d'assigner les données qui ont été manipulées dans Python à la fonction R pour faire une analyse plus poussée. J'ai aussi besoin de récupérer les données en python après que la fonction ait fait l'analyse. Je sais rpy2 et j'ai utilisé cette commandecomment appeler une fonction de R en Python?

robjects.r('''source('mycode.R')''') 
r_test_function = robjects.globalenv['myFunction'] 

Je reçois cette erreur:

/usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning: Error in file(filename, "r", encoding = encoding) :
cannot open the connection

warnings.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning: In addition: warnings.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning: Warning message:

warnings.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning: In file(filename, "r", encoding = encoding) :
warnings.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning:

warnings.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning: cannot open file 'mycode.R': No such file or directory

warnings.warn(x, RRuntimeWarning) Info | ____________________________________________________________________________________________________| Error | Termination with exception status| Error

J'ai utilisé le sys.path.append('thePath') pour le répertoire contenant la fonction. Quelqu'un peut-il m'aider s'il vous plaît à ce sujet? J'ai beaucoup cherché sur le sujet mais je n'ai rien trouvé dans mon cas. Aussi est ce que j'ai expliqué ci-dessus pratique avec rpy2?

Merci,

+0

L'erreur se produit-elle sur votre première ligne ou votre deuxième ligne? Qu'y a-t-il dans le fichier que vous produisez? Qu'est-ce que 'bfast.R'? Avez-vous des erreurs en faisant des trucs rpy de base? – Spacedman

+0

J'ai modifié l'erreur, le bfast.R est le même que mycode.R. Il y a plusieurs fonctions R dans le fichier auquel je fais référence. Oui, j'ai essayé d'autres fonctions simples, toujours la même erreur. –

+0

** Est-ce que l'erreur se produit sur votre première ligne ou sur votre deuxième ligne? ** De quel dossier Python est-il originaire? Où se trouve le fichier R dans votre système de fichiers? Qu'est-ce que vous obtenez si vous exécutez 'getwd()' à partir de Rpy2? C'est le répertoire de travail de R. Qu'en est-il de 'file.exists ('mycode.R')'? Cela vous indique si le fichier existe. – Spacedman

Répondre

0

est votre préoccupation est d'obtenir le chemin complet du répertoire? Je travaille actuellement sur Python 3.6 pour parcourir tous les fichiers du répertoire et les lister. Puisque vous voulez travailler avec un seul fichier spécifique, vous pouvez essayer ce qui suit:

import os

file = os.path.abspath ('' F: \ Training.xlsx '') de sorte que votre fichier variable ressemblera à 'F: \ Training.xlsx'

Vous pouvez simplement utiliser le fichier variable au lieu d'entrer le chemin du répertoire entier.

Espérons que ça aide.

+0

Salut Sagar, merci pour votre réponse. Je suis nouveau à python. J'ai essayé votre suggestion. Encore obtenir la même erreur. –