我有一个pandas数据帧,我使用pandas.rpy.common中的convert_to_r_dataframe方法将其转换为R数据框。 我已经设置好如下:
self.event = pd.read_csv('C://' + self.event_var.get() + '.csv')
final_products = pd.DataFrame({'Product': self.event.Product, 'Size': self.event.Size, 'Order': self.event.Order})
r.assign('final_products', com.convert_to_r_dataframe(final_products))
r.assign('EventName', self.event_var.get())
r.assign('EventTime', self.eventtime_var.get())
r.source('application.r')
self.event_var.get() 从GUI中检索用户输入(我正在使用Tkinter创建应用程序)。Product、Size和Order是CSV文件中的列。
由于Rpy2在Python中设置了R环境,我期望最终的 final_products R 数据框将被R环境理解。不幸的是,虽然R脚本确实运行了,但它并没有给出正确的结果(我使用R脚本创建图形,但它们在程序终止时为空)。然而,EventName和EventTime变量确实有效。我在这里错过了什么吗?为什么Python中的R数据框分配没有被R环境正确解释?
获得的错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
return self.func(*args)
File "G:\Development\workspace\GUI\GUI.py", line 126, in evaluate
r.source('application.r')
File "C:\Python27\lib\site-packages\rpy2\robjects\functions.py", line 86, in __call__
return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "C:\Python27\lib\site-packages\rpy2\robjects\functions.py", line 35, in __call__
res = super(Function, self).__call__(*new_args, **new_kwargs)