用python调用R程序出现的问题 2018-8-25

俗话说的好“福无双至,祸不单行”。果然前一阵出现了两个问题,结果前天告诉我比赛获奖了,睡前1w,丢自行车的钱能补回来了。高兴不到5个小时呢,我查了查参加的一项考试,果然挂科了。真tm。

今天用Python调用R语言的时候,出现了一个问题

NotImplementedError: Conversion 'py2ri' not defined for objects of type '<class 'pandas.core.series.Series'>'

我在Stack Overflow社区的找到了解决的方法,我的问题差不多,是DataFrame不能转化,但是解决方法都一样。

https://stackoverflow.com/questions/30922213/minimal-example-of-rpy2-regression-using-pandas-data-frame

这个是原版。

我想做的是将Python中的变量应用到R中去,但是报错说R中没有函数能处理pd.dataframe的函数。因此需要做一个变量转换。

百度了很多rpy2包的使用,变量的转换。没卵用,讲解的都差不多。基本上原创就一个,剩下的所有的人都转载人家原创一篇的。讲的是用**vector()函数变换的,不管事。

所以最终解决办法就是用:

from rpy2.robjects import pandas2ri
pandas2ri.activate()
robjects.globalenv['dataframe'] = dataframe

 这几行命令解决。注意第二行的命令 activate这个必须要加进去,第三行才不能报错。我先开始试了半天,真特么。至于原问题的代码

import pandas.rpy.common as common
robjects.globalenv['dataframe']\
   = common.convert_to_r_dataframe(dataframe) 

根本就不对。反正我用的是Python3,错误的内容是 pandas模块根本没有rpy

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值