我在R中有以下代码:
require(hgu133a.db)
entrezIDs <- select(hgu133a.db, probeNames, "ENTREZID")
其中probeNames
是与此数据库中找到的探测相对应的字符串列表。你知道吗
我正在尝试使用rpy2将其转换为Python:
from rpy2.robjects.packages import importr
hgu133a_db = importr('hgu133a.db')
entrez_ids = hgu133a_db.select(hgu133a_db, probe_names, 'ENTREZID')
但收到错误:
AttributeError: module 'hgu133a.db' has no attribute 'select'
我已经搜索了文档(?select
),据我所知,数据库hgu133a.db从AnnotationDbi类继承了一个select
方法。你知道吗
如何正确解析select()
来自的库,以便在Python中使用它?你知道吗
[应该是对@merv的答案的评论,但超过了数字字符]
rpy2
的importr()
试图帮助a明确R对象来自哪个包名称空间,而R的常见用法则要少得多(并且可能导致麻烦,例如R包的加载顺序会影响执行哪个同名函数)。你知道吗与
importr
的折衷是必须知道R符号来自何处。在rpy2
中有一个鲜为人知的函数,它可以帮助查找给定R符号的定义位置(*):https://rpy2.readthedocs.io/en/version_2.8.x/robjects_rpackages.html#finding-where-an-r-symbol-is-coming-from。你知道吗否则,还可以使用
r()
检索将在R会话中拾取的对象(*)。你知道吗(*:如前所述,会话中较早加载R包的顺序可能会影响选择哪个R对象)。你知道吗
显然,上述问题有两个。首先,应该使用AnnotationDbi来解析
select()
方法。第二,hgu133a_db
是一个InstallSTPackage对象-必须使用hgu133a_db.hgu133a_db
。综合起来,从R到Python的翻译是:相关问题 更多 >
编程相关推荐