1
如何按名稱訪問指定列表的元素?rpy2訪問R按名稱命名的列表項,低級接口
我有3個函數,所有這些函數都返回類的ListSexpVector
。其中一個有5個元素,['method', 'parameter', 'statistic', 'p.value', 'data.name']
,其他人有不同的數字和順序。我有興趣從這個列表中提取p.value
,statistic
和parameter
。在R I可以使用$
,像這樣:
p.value <- fit$p.value
statistic <- fit$statistic
param <- fit$parameter
我rpy2
找到的最好的相當於是這樣:
p_val = fit[list(fit.do_slot('names')).index('p.value')]
stat = fit[list(fit.do_slot('names')).index('statistic')]
param = fit[list(fit.do_slot('names')).index('parameter')]
這是相當囉嗦。有更好的(更短,更甜,Pythonic)的方式嗎?
有好的,老式的整數索引基礎:
p_val = fit[3]
stat = fit[2]
param = fit[1]
但當位置發生變化這是行不通的,因此是一個嚴重的限制,因爲我安裝3個不同的功能,並且每個返回不同的順序。
噢,有一個'.rx2'訪問器!我不知道這件事。沒有在文檔中找到它。謝謝! – Kartik
這裏簡單地提到:http://rpy2.readthedocs.io/en/version_2.8.x/vector.html#extracting-r-style(儘管目前沒有代碼示例) – lgautier