嗨,我是编写 R 包的新手。
r package development imports not loaded建议我使用 roxygen2。我曾经调用devtools::document()
并生成了命名空间。
但是,当我加载这个简单的包(或通过 opencpu 尝试)时,这些功能不可用。
在本机 R 中调用代码似乎有效
test2::hello()
[1] "Hello, world!"
像这样启动opencpu:
1)通过启动opencpu简单服务器library(opencpu)
2)执行opencpu$restart
将显示一个端口号
3) http://localhost:myPortNumber/ocpu/library/myPackage/info ---> 这个端点有效
正如评论中提到的,这不是调用函数的“正确”方式。但是,opencpu 默认为myfunction/print
是否通过 HTTP 调用函数http://public.opencpu.org/ocpu/library/stats/R/quantile/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