Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包中建议的RDCOMClient_R_Package_Rdcomclient - Fatal编程技术网

包中建议的RDCOMClient

包中建议的RDCOMClient,r,package,rdcomclient,R,Package,Rdcomclient,我的R-package通过描述文件使用RDCOMClient: 建议:RDCOMClient 以及以下(完美工作)代码: 或者。。如果打算在建议的软件包不可用时给出错误,只需使用例如rgl::plot3d 重新编码(据我所知)意味着删除require语句: GetNewWrd <- function() { # Starts the Word application with wrd as handle wrd <- RDCOMClient::COMCreate("Word

我的R-package通过描述文件使用RDCOMClient:

建议:RDCOMClient

以及以下(完美工作)代码:

或者。。如果打算在建议的软件包不可用时给出错误,只需使用例如rgl::plot3d

重新编码(据我所知)意味着删除require语句:

GetNewWrd <- function() {

  # Starts the Word application with wrd as handle
  wrd <- RDCOMClient::COMCreate("Word.Application", existing=FALSE)
  newdoc <- wrd[["Documents"]]$Add("",FALSE, 0)
  wrd[["Visible"]] <- TRUE 

  invisible(wrd)
}
createCOMReference是RDCOMClient中的一个函数,如果没有显式的require语句,显然找不到它


看在上帝的份上,我应该如何按照CRAN的政策将RDCOMClient集成到我的包中?

这是一个非常古老的问题,但我偶然发现了同样的问题。我使用以下变通方法,在
R CMD check
中不会发出警告,但在我看来,这是一个可怕的黑客行为:

if(requireNamespace(“RDCOMClient”,quilly=TRUE)){
如果(!“RDCOMClient”%in%.packages()){
attachNamespace(“RDCOMClient”)
}
# ...
}

createCOMReference
可能无法从RDCOMClient导出。您是否查看过其他已接受的软件包,如
DescTools
?此外,现在我再次阅读了第1.1.3.1节,我认为这并不是说您不能使用
require
,而是在可选的情况下,
requireNamespace
路由可能会产生更少的问题。它担心函数可能被过度编写。这对于RDCOMClient函数来说似乎不太可能。我是DescTools的作者,我想上传一个更新。但里普利教授拒绝发表评论:您并没有遵守主流存储库中未重新建议或增强的策略:RDCOMClient*检查R代码中的依赖项。。。注意包代码中对“RDCOMClient”的“library”或“require”调用。请改用::或requireNamespace()。请参阅“编写R扩展”手册中的“建议的软件包”部分。我原以为OmegaHat会被视为主流回购协议。联系邓肯·坦普尔·朗有什么价值吗?:-)更奇怪的是,最新版本可以在他自己的网站上找到:。直接联系邓肯·坦普尔·朗也许是个好主意。。。。
if (requireNamespace("rgl", quietly = TRUE)) {
   rgl::plot3d(...)
} else {
   ## do something else not involving rgl.
}
GetNewWrd <- function() {

  # Starts the Word application with wrd as handle
  wrd <- RDCOMClient::COMCreate("Word.Application", existing=FALSE)
  newdoc <- wrd[["Documents"]]$Add("",FALSE, 0)
  wrd[["Visible"]] <- TRUE 

  invisible(wrd)
}
Error in RDCOMClient::COMCreate("Word.Application", existing = FALSE) :
  could not find function "createCOMReference"