2013-10-30 56 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」向量的內部表示是整數,而這種混合可能會導致不愉快的意外。

相關問題