首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PyRserve中使用R包pmultinom

在PyRserve中使用R包pmultinom
EN

Stack Overflow用户
提问于 2020-07-11 05:45:43
回答 1查看 29关注 0票数 2

我正在尝试通过使用pyRserve来使用Python语言中的R包pmultinom,其中的数字被导入到代码中。我遇到以下错误:

REvalError:错误:找不到对象'pmultinom‘。

代码语言:javascript
复制
import pyRserve
num1 = 1
num2 = 2
num3 = 3
num4 = 4
num5 = 5
num6 = 6
vec1 = (.2,.3,.5)

r_script = '''
           install.packages(pmultinom)
           library(pmultinom)
        
           pmultinom(
           '''
full_rscript =( r_script + 'lower=c(' + str(num1) + ',' + str(num2) + ',' + str(num3) + 
                               '), upper=c(' + str(num4) + ',' + str(num5) + ',' +  
                                   str(num6) + 
                                   '), size=' + str(num7) + ', probs=' + str(vec1) + ')'
           )
output = conn.eval(full_rscript) 

当我尝试使用类似的代码

代码语言:javascript
复制
conn.r.pmultinom(…)

我得到一个错误,即找不到函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-11 06:22:26

这里是pyper的一个选项,因为我们已经在生产设置中使用过它,它工作正常,没有任何问题

代码语言:javascript
复制
from pyper import *
r = R(use_pandas=True)
num1 = 1
num2 = 2
num3 = 3
num4 = 4
num5 = 5
num6 = 6
num7 = 20000
vec1 = (.17649, .17542, .15276, .15184, .17227, .17122)

我们不需要创建单独的对象,它可以是一个列表或元组,就像在vec1中一样。只是为了演示一下

代码语言:javascript
复制
r.assign("rnum1", num1)
r.assign("rnum2", num2)
r.assign("rnum3", num3)
r.assign("rnum4", num4)
r.assign("rnum5", num5)
r.assign("rnum6", num6)
r.assign("rnum7", num7)
r.assign("rvec1", vec1)

创建表达式

代码语言:javascript
复制
expr = "library(pmultinom); out <- pmultinom(lower = c(rnum1, rnum2, rnum3, rnum4, rnum5, rnum6), upper = rep.int(3630, 6), size = rnum7, probs = rvec1, method = 'exact')"

并计算表达式并获得输出

代码语言:javascript
复制
r(expr)
r.get("out")
#0.95663799758361

直接从R侧执行-testing

代码语言:javascript
复制
num1 = 1
num2 = 2
num3 = 3
num4 = 4
num5 = 5
num6 = 6
num7 = 20000
vec1 = c(.17649, .17542, .15276, .15184, .17227, .17122)


pmultinom(lower = c(num1, num2, num3, num4, num5, num6), 
  upper = rep.int(3630, 6), size = num7, probs = vec1, 
       method = 'exact')
#[1] 0.956638
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62842754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档