RPy2中的方差分析语法

2024-09-30 18:13:24 发布

您现在位置:Python中文网/ 问答频道 /正文

第一次在Python中使用RPy2实现。尝试用两个因素进行单因素方差分析。它在另一台机器上使用R,但Python不喜欢这种语法。任何想法都是感激的!在

from rpy2.robjects import aov

huanova = aov(formula = df1['human_den'] ~ df1['region']+df1['years'])

错误消息指向tilda。在

^{pr2}$

Tags: fromimport机器语法region因素df1human
3条回答

上面来自musically_ut的答案可以使用,但是您需要使用importr加载包含aov函数的“stats”包,如this question所示:

from rpy2.robjects import Formula 
from rpy2.robjects.packages import importr
stats = importr('stats')

formula = Formula('human_den ~ region + years')
env = formula.environment
env['human_den'] = df1['human_den']
env['region'] = df1['region']
env['years'] = df1['years']

huanova = stats.aov(formula = formula)

根据documentation about Formulae in Rpy2,必须将公式作为字符串传递。这是一种方法:

from rpy2.robjects import aov
from rpy2.robjects import Formula

formula = Formula('human_den ~ region + years')
env = formula.environment
env['human_den'] = df1['human_den']
env['region'] = df1['region']
env['years'] = df1['years']

huanova = aov(formula = formula)

在python中,Tilde~是一元的,但您将其作为二进制使用。您可能需要:

 huanova = aov(formula = df1['human_den'] + ~ df1['region']+df1['years'])

注意,我在颚化符前面加了一个加号。在

相关问题 更多 >