使用 rpy2,如何调用带有“.”的函数在变量名中?
Using rpy2, how to call a fuction with a "." in the variable name?
我想使用 rpy2 从 R leaps 包中调用 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 相对的直接函数。(我得到一个 "SyntaxError: keyword can't be an expression")。谁能告诉我如何从 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
rpy2-2.2.x 评论中的文档 link 已经很旧了。当前版本的文档位于:
https://rpy2.github.io/doc/v3.0.x/html/robjects_functions.html
否则,文档非常清楚地说明几乎不可能提取 R 省略号 (...
) 可接受的参数(@CristiFati 在评论中指出)。
您可以在 **
中使用语法无效的参数名称。例如这里:
leaps.regsubsets(x=x, y=y,
nbest=10, nvmax=3,
**{'really.big': true})
我想使用 rpy2 从 R leaps 包中调用 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 相对的直接函数。(我得到一个 "SyntaxError: keyword can't be an expression")。谁能告诉我如何从 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
rpy2-2.2.x 评论中的文档 link 已经很旧了。当前版本的文档位于:
https://rpy2.github.io/doc/v3.0.x/html/robjects_functions.html
否则,文档非常清楚地说明几乎不可能提取 R 省略号 (...
) 可接受的参数(@CristiFati 在评论中指出)。
您可以在 **
中使用语法无效的参数名称。例如这里:
leaps.regsubsets(x=x, y=y,
nbest=10, nvmax=3,
**{'really.big': true})