1

我怎样才能在 rpy2 中做到这一点?mydata 是一个数据框,rank 是一个从 1 到 4 的变量

mydata$rank <- factor(mydata$rank)
4

1 回答 1

0

根据此http://rpy.sourceforge.net/rpy2/doc-2.3/html/vector.html#dataframe,您必须以间接方式进行:

In [51]:

import pandas as pd
import rpy2.robjects as ro
import pandas.rpy.common as py2r
In [52]:

DF=pd.DataFrame({'val':[1,1,1,2,2,3,3]})
In [53]:

r_DF = py2r.convert_to_r_dataframe(DF)
In [54]:

print r_DF
  val
0   1
1   1
2   1
3   2
4   2
5   3
6   3

In [55]:

from rpy2.robjects.vectors import DataFrame
r_DF2=DataFrame({'factor': ro.r['factor'](r_DF.rx2('val')),
                 'val': r_DF.rx2('val')})
In [56]:

print r_DF2
  val factor
1   1      1
2   1      1
3   1      1
4   2      2
5   2      2
6   3      3
7   3      3
于 2014-03-29T15:59:39.333 回答