Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rpy2按名称访问R命名列表项,低级接口_Rpy2 - Fatal编程技术网

rpy2按名称访问R命名列表项,低级接口

rpy2按名称访问R命名列表项,低级接口,rpy2,Rpy2,如何按名称访问命名列表的元素 我有3个函数,它们都返回类htest的ListSexpVector。其中一个有5个元素,['method'、'parameter'、'statistic'、'p.value'、'data.name'],其他元素有不同的编号和顺序。我感兴趣的是从这个列表中提取p.value,统计数据和参数。在R中,我可以使用$,如下所示: p.value <- fit$p.value statistic <- fit$statistic param <- fit$p

如何按名称访问命名列表的元素

我有3个函数,它们都返回类
htest
ListSexpVector
。其中一个有5个元素,
['method'、'parameter'、'statistic'、'p.value'、'data.name']
,其他元素有不同的编号和顺序。我感兴趣的是从这个列表中提取
p.value
统计数据
参数
。在R中,我可以使用
$
,如下所示:

p.value <- fit$p.value
statistic <- fit$statistic
param <- fit$parameter
这是相当冗长的。有更好(更短、更甜、更像蟒蛇)的方法吗


有一种传统的基于整数的索引:

p_val = fit[3]
stat  = fit[2]
param = fit[1]

但是当位置改变时,它不起作用,因此是一个严重的限制,因为我安装了3个不同的函数,每个函数返回不同的顺序。

高级接口旨在提供更友好的接口,因为低级接口非常接近R的C-API。有了它,人们可以:

p_val = fit.rx2('p.value')

如果使用低级接口,则必须实现自己的便利包装器来重现这些功能。例如:

def dollar(obj, name):
    """R's "$"."""
    return obj[fit.do_slot('names').index(name)]

哦,有一个
.rx2
存取器!我不知道这件事。在文件里找不到。非常感谢。这里简单地提到:(尽管目前没有代码示例)
p_val = fit[fit.names.index('p.value')]
def dollar(obj, name):
    """R's "$"."""
    return obj[fit.do_slot('names').index(name)]