r 包开发 - 自己的功能对 opencpu 不可见

r package development - own function not visible for opencpu

嗨,我是编写 R 包的新手。

建议我使用 roxygen2。 我曾经调用过devtools::document(),命名空间就生成了

然而,当我加载这个简单的包(或通过 opencpu 尝试)时,功能不可用。

调用本机 R 中的代码似乎有效

test2::hello()
[1] "Hello, world!"

像这样启动 opencpu:

1) 通过library(opencpu)

启动opencpu简单服务器

2) 执行opencpu$restart这将显示一个端口号

3) http://localhost:myPortNumber/ocpu/library/myPackage/info ---> 这个端点有效

如评论中所述,这不是 "proper" 调用函数的方式。但是,如果通过 HTTP 将函数调用为 http://public.opencpu.org/ocpu/library/stats/R/quantile/print,则 opencpu 默认为 myfunction/print,即使在我调用 hello 函数时它也不起作用。

这是如何调用更复杂函数的演示:

curl http://localhost:myPortNumber/ocpu/library/stats/R/quantile/json -d '{"type":1,"x":[1,2,3,4,5,6,7,8,9,10],"probs":[0.05,0.25,0.75,0.95]}' -H "Content-Type: application/json"

您可以通过以下方式简单地进行测试:

curl http://public.opencpu.org/ocpu/library/stats/R/quantile/json -d \
'{"type":1,"x":[1,2,3,4,5,6,7,8,9,10],"probs":[0.05,0.25,0.75,0.95]}' \
-H "Content-Type: application/json"

我确实通过 sudo 安装了它,例如:

sudo R CMD INSTALL test2_0.1.tgz

这意味着它应该可以通过 /library/test2 端点获得。

解决方案:

它仍然是错误的 API 端点 --> 我缺少 R 子目录

http://localhost:myPort/ocpu/library/myPackage/R/hello/

示例代码在这里:https://github.com/geoHeil/rSimplePackageForOpenCpu

它仍然是错误的 API 端点 --> 我缺少 R 子目录

http://localhost:myPort/ocpu/library/myPackage/R/hello/