簡體   English   中英

RPy2中的ANOVA語法

[英]ANOVA syntax in RPy2

首次在Python中使用RPy2實現。 嘗試使用兩個因素進行單向方差分析。 它可以在另一台機器上的R中工作,但是Python不喜歡這種語法。 任何想法表示贊賞!

from rpy2.robjects import aov

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

錯誤消息指向tilda。

huanova = aov(formula=df1['human_den'] ~ df1['region']+df1['years'])
                                       ^
SyntaxError: invalid syntax

根據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)

從以上回答musically_ut會工作,但你需要加載“統計”包,其中包含使用importr的AOV函數,如在這個問題

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)

波浪號~是蟒蛇一元,但你使用它作為二進制。 您可能想要:

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

注意,我在Tilde之前添加了PLUS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM