2013-10-30 58 views
1

我在R代码里面有以下琐碎的任务:从整数数据帧列类型更改为因素

df$a<-factor(df$a,levels=c("3","2","1")) 

(级别的顺序是绘制重要,所以这可能必须通过类似任务完​​成这个)

我怎样才能达到相同的结果使用rpy2?比方说,我有这样构成的数据帧:

from rpy2 import robjects 

d = {'a': robjects.IntVector((1,2,3)), 'b': robjects.IntVector((4,5,6))} 
dataf = robjects.DataFrame(d) 

现在我想改变'a'列的类型和设置级别的顺序在里面,就像我在河做了使用RPY这可能吗?

回答

3

要解决的水平在R factor

>>> dataf[dataf.index('a')] = v 

注:

>>> from rpy2.robjects.vectors import FactorVector, IntVector 
>>> v = FactorVector((1,2,3), levels=IntVector((3,2,1))) 
>>> print(v) 
[1] 1 2 3 
Levels: 3 2 1 

更改的数据帧一列是可以做到在R您愉快地给数值(整数),同时指定级别为字符串。 R确实可以让你静静地做到这一点,但请注意,R“factor”向量的内部表示是整数,而这种混合可能会导致不愉快的意外。

相关问题