从加载了 devtools 的包中设置 ReferenceClass 时 R 中的 Shiny 出错
Error in Shiny in R when setting a ReferenceClass from a package loaded with devtools
这是一个非常具体的问题。
我有一个简单的闪亮应用程序,使用最新版本的 R (3.2.2)、RStudio (0.99.473),所有包都是最新的,在 Windows 7 和 Ubuntu 14.04。同样的事情发生在两个 SO 中。
我有一个函数库,我将其嵌入到 "package" 中,并带有正确创建的 DESCRIPTION 文件。我使用 devtools 来加载这个包。所以,我非常简单的 Shiny 应用程序中的第一行代码是
library("devtools")
load_all("../../RTEMP");
因为我打算在 Shiny 应用程序中使用其中的一些功能。包名实际上不是 RTEMP,我临时创建它是为了隔离问题。这个临时包在 RTEMP/R/, something.r 中只有一个文件。该文件包含一行代码:
AA <- setRefClass("AA");
所以我创建了一个引用 class,只有一个名字(我的原始代码依赖于这种类型的 R 对象)。我没有对包做任何事情,只是加载它。
当 运行 Shiny 应用程序在打开 RStudio 后第一次运行时,它运行良好。如果我关闭应用程序并再次打开它,我会收到以下错误消息:
ERROR: shinyjs: you cannot mix named and unnamed arguments in the same function call
奇怪的是,如果我将 Shiny 应用程序的开头更改为:
#library("devtools")
#load_all("../../RTEMP");
AA <- setRefClass("AA");
因此,在 Shiny 应用程序中评论包加载和设置引用 class,一切正常。
当我从加载了 devtools 的包中调用 setRefClass 时会发生问题,但当我直接从 Shiny 调用它时不会。另外,我可以第一次加载它,但不能加载第二次(Shiny Window 只是显示上面的错误消息)。
知道是什么导致了这个错误吗?
非常感谢。
实际上是 devtools
包中的问题导致与 shinyjs
不兼容。我提交了这个 bug report,希望在下一个版本中不会发生这种情况。
如果您在使用 Shiny 时遇到类似的错误消息,则可能是其他包(或您自己的包)中的其他函数需要命名空间。
这是一个非常具体的问题。
我有一个简单的闪亮应用程序,使用最新版本的 R (3.2.2)、RStudio (0.99.473),所有包都是最新的,在 Windows 7 和 Ubuntu 14.04。同样的事情发生在两个 SO 中。
我有一个函数库,我将其嵌入到 "package" 中,并带有正确创建的 DESCRIPTION 文件。我使用 devtools 来加载这个包。所以,我非常简单的 Shiny 应用程序中的第一行代码是
library("devtools")
load_all("../../RTEMP");
因为我打算在 Shiny 应用程序中使用其中的一些功能。包名实际上不是 RTEMP,我临时创建它是为了隔离问题。这个临时包在 RTEMP/R/, something.r 中只有一个文件。该文件包含一行代码:
AA <- setRefClass("AA");
所以我创建了一个引用 class,只有一个名字(我的原始代码依赖于这种类型的 R 对象)。我没有对包做任何事情,只是加载它。
当 运行 Shiny 应用程序在打开 RStudio 后第一次运行时,它运行良好。如果我关闭应用程序并再次打开它,我会收到以下错误消息:
ERROR: shinyjs: you cannot mix named and unnamed arguments in the same function call
奇怪的是,如果我将 Shiny 应用程序的开头更改为:
#library("devtools")
#load_all("../../RTEMP");
AA <- setRefClass("AA");
因此,在 Shiny 应用程序中评论包加载和设置引用 class,一切正常。
当我从加载了 devtools 的包中调用 setRefClass 时会发生问题,但当我直接从 Shiny 调用它时不会。另外,我可以第一次加载它,但不能加载第二次(Shiny Window 只是显示上面的错误消息)。
知道是什么导致了这个错误吗?
非常感谢。
实际上是 devtools
包中的问题导致与 shinyjs
不兼容。我提交了这个 bug report,希望在下一个版本中不会发生这种情况。
如果您在使用 Shiny 时遇到类似的错误消息,则可能是其他包(或您自己的包)中的其他函数需要命名空间。