0

这是一个非常具体的问题。

我有一个简单的 Shiny 应用程序,使用最新版本的 R (3.2.2)、RStudio (0.99.473),所有软件包都是最新的,在 Windows 7 和 Ubuntu 14.04 中测试。同样的事情发生在两个 SO 中。

我有一个嵌入在“包”中的函数库,其中包含正确创建的说明文件。我使用 devtools 来加载这个包。所以,我非常简单的 Shiny 应用程序的第一行代码是

library("devtools")
load_all("../../RTEMP");

因为我打算在 Shiny 应用程序中使用其中一些功能。包名实际上不是 RTEMP,我临时创建这个是为了隔离问题。这个临时包在 RTEMP/R/ 中有一个文件,something.r。该文件包含一行代码:

AA <- setRefClass("AA");

所以我正在创建一个只有名称的引用类(我的原始代码依赖于这种类型的 R 对象)。我没有对包做任何事情,只是加载它。

打开 RStudio 后第一次运行 Shiny 应用程序时,它运行良好。如果我关闭应用程序并再次打开它,我会收到以下错误消息:

ERROR: shinyjs: you cannot mix named and unnamed arguments in the same function call

奇怪的是,如果我将 Shiny 应用程序的开头更改为:

#library("devtools")
#load_all("../../RTEMP");
AA <- setRefClass("AA");

因此,在 Shiny 应用程序中注释包加载和设置引用类,一切正常。

当我从加载有 devtools 的包中调用 setRefClass 时会出现问题,但当我直接从 Shiny 调用它时不会。此外,我可以第一次加载它,但不能第二次加载(闪亮的窗口只是显示上面的错误消息)。

任何想法可能导致此错误?

非常感谢。

4

1 回答 1

1

实际上是devtools包中的一个问题导致与shinyjs. 我提交了这个错误报告,希望这不会在下一个版本中发生。

如果您在使用 Shiny 时遇到类似的错误消息,则其他包(或您自己的包)中可能还有其他需要命名空间的函数。

于 2015-08-19T22:36:52.713 回答