UsageError:无法识别的参数:in%R行
由于我发现rpy2和在我的ipython笔记本中使用%R的可能性,我的编码变得更容易了。但我可能撞墙了。UsageError:无法识别的参数:in%R行
我需要从一个稳定的分布产生价值。我使用stabledist包从R.
我需要运行命令:当我定义我为A R细胞的细胞之一
Fx = pstable(seq(-2,4,0.1), alpha =alfa_x, beta = -1, gamma = scale_x, delta = delta_x, pm = 1, lower.tail = TRUE, log.p = FALSE, subdivisions = 1000)
,我运行命令有:
%%R Fx = pstable(.....
一切正常。
但我需要把这个函数放在一个python脚本中。到目前为止,我已经使用了很多R包,并且数据的推送/拉取工作非常完美,所以它在Python脚本中使用了R代码行(使用%R rmagic)。
但是这一个,如果我叫Python脚本中相同的封装和功能,以下列方式:
python code... %Rpush alfa_x
%Rpush scale_x
%Rpush delta_x
%R Fx = pstable(seq(-2,4,0.1), alpha =alfa_x, beta = -1, gamma = scale_x, delta = delta_x, pm = 1, lower.tail = TRUE, log.p = FALSE, subdivisions = 1000)
我得到的用法错误:
UsageError: unrecognized arguments:.....
我基本上得到一些错误报告在这个老[线程] [1]
任何建议?
(我曾尝试我的Python代码中使用%% R,但它不会改变任何东西)
[1] https://bitbucket.org/rpy2/rpy2/issue/253/r-select-flights-year-day
回答:
一种选择是使用经典的方式:
import rpy2.robjects as robjects FX= robjects.r('''
pstable(seq(-2,4,0.1),
alpha =alfa_x,
beta = -1,
gamma = scale_x,
delta = delta_x,
pm = 1, lower.tail = TRUE,
log.p = FALSE, subdivisions = 1000)
''')
回答:
我发现了一个解决方法,这一问题。但我想知道是否有适当的解决方案。
我创建的R细胞, “解决办法” 功能:
%%R library(stabledist)
workaround_pstable <- function(x,alfa_x,scale_x,delta_x)
{F = pstable(x, alpha =alfa_x, beta = -1, gamma = scale_x, delta = delta_x, pm = 1, lower.tail = TRUE, log.p = FALSE, subdivisions = 1000)
return(F)}
,然后在IPython的电池我的Python代码中,我所说的解决办法功能
python code... %Rpush alfa_x
%Rpush scale_x
%Rpush delta_x
%R Fx = workaround_pstable(Id_unique,alfa_x,scale_x, delta_x)
它的工作。
回答:
你可能会只调用R函数由rpy2
外露达到更好的代码清晰:
from rpy2 import robjects # get whatever is called "pstable", just like when writing
# "pstable" in the R console
pstable = robjects.globalenv.get('pstable')
# same for seq... but since I know that it is coming from base, I
# get it from there
seq = robjects.baseenv['seq']
Fx = pstable(seq(-2,4,0.1),
alpha = alfa_x,
beta = -1,
gamma = scale_x,
delta = delta_x,
pm = 1,
lower_tail = True,
log_p = False,
subdivisions = 1000)
以上是 UsageError:无法识别的参数:in%R行 的全部内容, 来源链接: utcz.com/qa/267223.html