簡體   English   中英

在Python中將命名列表向量從R轉換為rpy2?

[英]translating named list vectors from R into rpy2 in Python?

python Rpy2中以下R代碼的等效項是什么?

Var1 = c("navy", "darkgreen")
names(Var1) = c("Class1", "Class2")
ann_colors = list(Var1 = Var1)

尚不清楚ann_colors是什么。 用R評估時,它給出:

> ann_colors
$Var1
     Class1      Class2 
     "navy" "darkgreen" 

它是robject.ListVector嗎? 我試過了:

robjects.ListVector({"Class1": "navy", "Class2": "green"})

但這不是完全正確的,因為我不確定如何告訴ListVector對象該對象的名稱是Var1 ,即類似於list(Var1 = Var1)

如何將其正確翻譯為rpy2?

如果我正確理解您的問題,那么您正在尋找的是TaggedList:

import rpy2.rlike.container as rlc
Var1 = rlc.TaggedList(["navy","darkgreen"], tags=('Class1', 'Class2'))

有關更多詳細信息,請參見http://rpy.sourceforge.net/rpy2/doc-2.2/html/rlike.html

經過數小時的反復試驗,我找到了解決方案。 我不完全理解為什么與此類似的變體不起作用,或者為什么該方案不能與數據幀互換,但是我要做的是:

anno_colors = robj.StrVector(tuple(["navy", "green"]))
anno_colors.names = ["Class1", "Class2"]
od = OrderedDict()
od["Type"] = anno_colors
result = robj.ListVector(od)
print str(result)

暫無
暫無

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

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