r - 使用pandas数据框进行rpy2回归的最小示例

标签 r pandas rpy2

使用pandas数据框进行线性回归的推荐方法(如果有)是什么?我可以做到,但是我的方法似乎很复杂。我会使事情变得不必要地复杂吗?

R代码,用于比较:

x <- c(1,2,3,4,5)
y <- c(2,1,3,5,4)
M <- lm(y~x)
summary(M)$coefficients
            Estimate Std. Error  t value  Pr(>|t|)
(Intercept)      0.6  1.1489125 0.522233 0.6376181
x                0.8  0.3464102 2.309401 0.1040880

现在,我的python(2.7.10),rpy2(2.6.0)和pandas(0.16.1)
版:
import pandas
import pandas.rpy.common as common
from rpy2 import robjects
from rpy2.robjects.packages import importr

base = importr('base')
stats = importr('stats')

dataframe = pandas.DataFrame({'x': [1,2,3,4,5], 
                              'y': [2,1,3,5,4]})

robjects.globalenv['dataframe']\
   = common.convert_to_r_dataframe(dataframe) 

M = stats.lm('y~x', data=base.as_symbol('dataframe'))

print(base.summary(M).rx2('coefficients'))

            Estimate Std. Error  t value  Pr(>|t|)
(Intercept)      0.6  1.1489125 0.522233 0.6376181
x                0.8  0.3464102 2.309401 0.1040880

顺便说一句,我确实在导入pandas.rpy.common时获得了FutureWarning。但是,当我尝试使用pandas2ri.py2ri(dataframe)将数据帧从 Pandas 转换为R时(如上所述here),我得到了
NotImplementedError: Conversion 'py2ri' not defined for objects of type '<class 'pandas.core.series.Series'>'

最佳答案

R和Python并不完全相同,因为您是在Python / rpy2中构建数据框架,而在R中使用 vector (无数据框架)。

否则,带有rpy2的转换似乎在这里起作用:

from rpy2.robjects import pandas2ri
pandas2ri.activate()
robjects.globalenv['dataframe'] = dataframe
M = stats.lm('y~x', data=base.as_symbol('dataframe'))

结果:
>>> print(base.summary(M).rx2('coefficients'))
            Estimate Std. Error  t value  Pr(>|t|)
(Intercept)      0.6  1.1489125 0.522233 0.6376181
x                0.8  0.3464102 2.309401 0.1040880

关于r - 使用pandas数据框进行rpy2回归的最小示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30922213/

相关文章:

r - 数据框列的平均值

Azure 机器学习中的 R 错误,而不是 R Studio 中的错误

r - 尽管 echo=FALSE,knitr set_parent() 始终输出 NULL

r - 将 rpy2 与 Pandas 数据框一起使用

python - 使用rpy2,如何调用变量名中包含 "."的函数?

r - 向ggplot中的每个矩形添加相同的渐变

python - 每天在两列范围之间的数据框中添加行

python - 对两个 pandas 数据框列应用条件

python - 检查两个分类变量是否几乎相同

python - 从 CSV 到 ndarray 和 rpy2,