问题描述
我已经安装了rpy2所需的所有软件包,我想将R代码嵌入jupyter笔记本中以进行数据可视化。
但是,到目前为止,我的运气并不好,请指出我做错了哪一部分。希望找到解决方案。
# Import the libraries
import pandas as pd
import matplotlib.pyplot as plt
import rpy2
# Imports required from rpy2
from rpy2.robjects import pandas2ri
pandas2ri.activate()
%load_ext rpy2.ipython
SheetA = pd.read_csv('C:\\Users\\test\\SheetA.csv')
SheetA_header=['Grill Type','Pre-Heat Time (In Seconds)','Fuel Cost Per Meal ($)','Market Share (%)','Ease Of Use','Life Span (In Years)','Initial Investment ($)']
SheetA=pd.read_csv("C:\\Users\\test\\SheetA.csv",header=None,skiprows=1,names=SheetA_header)
SheetA = pd.DataFrame(SheetA)
%%R -i SheetA
library(ggplot2)
ggplot(SheetA)
D:\Anaconda\lib\site-packages\rpy2\ipython\rmagic.py in _(obj)
147 if 'data.frame' in obj.rclass:
148 # request to turn it to a pandas DataFrame
--> 149 res = converter.ri2py(obj)
150 else:
151 res = ro.sexpvector_to_ro(obj)
D:\Anaconda\lib\functools.py in wrapper(*args,**kw)
838 '1 positional argument')
839
--> 840 return dispatch(args[0].__class__)(*args,**kw)
841
842 funcname = getattr(func,'__name__','singledispatch function')
D:\Anaconda\lib\site-packages\rpy2\robjects\pandas2ri.py in ri2py_listvector(obj)
181 def ri2py_listvector(obj):
182 if 'data.frame' in obj.rclass:
--> 183 res = ri2py(DataFrame(obj))
184 else:
185 res = numpy2ri.ri2py(obj)
D:\Anaconda\lib\functools.py in wrapper(*args,'singledispatch function')
D:\Anaconda\lib\site-packages\rpy2\robjects\pandas2ri.py in ri2py_dataframe(obj)
188 @ri2py.register(DataFrame)
189 def ri2py_dataframe(obj):
--> 190 items = tuple((k,ri2py(v)) for k,v in obj.items())
191 res = PandasDataFrame.from_items(items)
192 return res
D:\Anaconda\lib\site-packages\rpy2\robjects\pandas2ri.py in <genexpr>(.0)
188 @ri2py.register(DataFrame)
189 def ri2py_dataframe(obj):
--> 190 items = tuple((k,v in obj.items())
191 res = PandasDataFrame.from_items(items)
192 return res
D:\Anaconda\lib\functools.py in wrapper(*args,'singledispatch function')
D:\Anaconda\lib\site-packages\rpy2\robjects\pandas2ri.py in ri2py_vector(obj)
137 @ri2py.register(SexpVector)
138 def ri2py_vector(obj):
--> 139 res = numpy2ri.ri2py(obj)
140 return res
141
D:\Anaconda\lib\functools.py in wrapper(*args,'singledispatch function')
D:\Anaconda\lib\site-packages\rpy2\robjects\numpy2ri.py in ri2py_sexp(obj)
157 def ri2py_sexp(obj):
158 if (obj.typeof in _vectortypes) and (obj.typeof != VECSXP):
--> 159 res = numpy.asarray(obj)
160 else:
161 res = ro.default_converter.ri2py(obj)
D:\Anaconda\lib\site-packages\numpy\core\_asarray.py in asarray(a,dtype,order)
83
84 """
---> 85 return array(a,copy=False,order=order)
86
87
ValueError: Buffer for this type not yet supported.
将数据帧处理到rpy2时肯定有问题,只是一个猜测。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)