擅长:python、mysql、java
<p>如果问题在于dataframe中的列不是因子(如其他答案中所建议的),则将它们转换为因子非常容易:</p>
<pre><code>rdf = pandas2ri.py2rpy(df)
base = importr('base')
import rpy2.robjects as ro
for cn in ('alcohol', 'gender'):
i = rdf.colnames.index(cn)
rdf[i] = base.as_factor(rdf[i])
# We could also do it with
# rdf[i] = ro.FactorVector(rdf[i])
</code></pre>
<p>为了安全起见,建议创建一个R公式对象。一些R函数将接受字符串并假定它们是公式,但这取决于包作者,并非总是如此</p>
<pre><code>WRS2.t2way(ro.Formula('attractiveness ~ gender*alcohol'), data = rdf)
</code></pre>