I get an error when I try to import rpy2. Here is the code and error.
>>> import pandas.rpy.common
Traceback (most recent call last):
File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\IPython\core\interactiveshell.py", line 2828, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-148-c258a0f70d44>", line 1, in <module>
import pandas.rpy.common
File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\pandas\rpy\common.py", line 14, in <module>
from rpy2.robjects.packages import importr
ImportError: No module named 'rpy2'
What could be the issue? I'm using python version 3.3.3 and pandas version 0.13.1
EDIT
Tried to install rpy2 separately.
Directly using
python setup.py install
gave me an error thatos
doesn't have a modulepopen3
.Directly installing the exe (rpy2-2.3.9.win32-py3.3.exe) from Christoph Gohlke's site http://www.lfd.uci.edu/~gohlke/pythonlibs/ run fine. But if I try to do
import pandas.rpy.common as com
then I get the following error (issue with the loading the DLL atfrom rpy2.rinterface._rinterface import *
:Traceback (most recent call last): File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\IPython\core\interactiveshell.py", line 2828, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "<ipython-input-10-63ebebefea80>", line 1, in <module> import pandas.rpy.common as com File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site- packages\pandas\rpy\common.py", line 14, in <module> from rpy2.robjects.packages import importr File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\rpy2\robjects\__init__.py", line 15, in <module> import rpy2.rinterface as rinterface File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\rpy2\rinterface\__init__.py", line 103, in <module> from rpy2.rinterface._rinterface import * ImportError: DLL load failed: %1 is not a valid Win32 application.
EDIT
Solved it finally. It seems like adding R_HOME and R_USER environment variables did the trick.
This might not apply directly to your question, but ever since pandas and rpy2 have upgraded, their interface has changed. In order to set it up, you must now:
Now, in order to change a Pandas dataframe into an R dataframe, one must use
pandas2ri.py2ri()
, or usepandas2ri.ri2py()
if you want change an R dataframe into a Pandas dataframe. Further information can be found at https://pandas.pydata.org/pandas-docs/stable/r_interface.html.In my case it initially did not wor installing it with conda. I solved it by first changing the active environment.
Well, first you have to install rpy2. If you are using conda you can do it using the following command
Then, if you want to use R on Jupyter Notebook environment you can activate R using
In my case it worked when I installed it in Anaconda Prompt with a command:
conda install -m rpy2
After that I had to move rpy2 directory from rpy2-2.9.0-py3.6-win32.egg (folder that was installed to) cause it didn't recognized it after installation...and moved only rpy2 folder to the following path:
C:\Users..\Anaconda3\Lib\site-packages (where all packages are called from)
That solved problem for me.
That looks like a pandas interface to rpy2. Separately, you also need rpy2 installed on your system. I don't have rpy2, so it was easy for me to check this:
I installed it using pip:
It works! It
import rpy2
works for you, butimport pandas.rpy.common
does not then the problem might be more subtle.I recently ran into a similar issue. I was trying to install rpy2 using anaconda version of python(3.6.3). Below, mentioned command worked for me,