【发布时间】:2019-04-11 16:21:18
【问题描述】:
我想使用 rpy2 调用 R jumps 包中的 regsubsets 函数。正弦似乎没有 python 等价物(至少不是我发现的)。
import pandas
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
import rpy2.robjects.packages as rpackages
pandas2ri.activate()
leaps = rpackages.importr("leaps")
x = pandas.DataFrame(np.random.randn(10,10))
y = pandas.DataFrame(np.random.randn(10))
leaps.regsubsets(x=x, y=y, nbest=10, nvmax=3, really.big=T)
调用该函数确实需要参数 really.big=T。这当然行不通,因为在 python 中 .与 R 相比,具有直接功能。(我得到“语法错误:关键字不能是表达式”)。谁能告诉我如何从 rpy2 调用它?
我曾尝试使用像 leaps.regsubsets({"x":x ... "really.big":T}) 这样的 kwargs 来做到这一点,但这也不起作用,我也不知道 R 中的“T”是什么。
好的,我发现"." gets transleted to "_".但遗憾的是它仍然不起作用,不知何故这个论点没有得到传递。
leaps.regsubsets(x=X, y=Y, nbest=10, nvmax=3, really_big=True)
仍然给我错误: RRuntimeError:
Error in leaps.exhaustive(a, really.big = really.big) :
Exhaustive search will be S L O W, must specify really.big=T
【问题讨论】:
-
如果你想使用它作为标识符,你必须定义 T。对 R(或 rpy)一无所知,但如果您使用 kwargs 方法,请尝试:
... "really.big": "T",或者也许leaps.T?. -
事实证明 R 中的 T 只是 True ——所以谜题已经解决了,但我怎么能用 python 中的 "really.big" 之类的 agrument 来调用函数呢?