Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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
R 什么是“;类型为‘的对象;关闭’;不可再附加”;闪亮的错误?_R_Shiny - Fatal编程技术网

R 什么是“;类型为‘的对象;关闭’;不可再附加”;闪亮的错误?

R 什么是“;类型为‘的对象;关闭’;不可再附加”;闪亮的错误?,r,shiny,R,Shiny,我有一个闪亮的应用程序,当我运行它时,我得到一个错误,说“closure”类型的对象是不可子集的。这是什么?我该如何修复它 注意:我写了这个问题,因为这个问题经常出现,可能的重复要么与无关,要么非常具体,以至于答案不明显适用于广泛的情况。另请参见在非闪亮上下文中涵盖此错误的内容 如何解决此问题: 这是闪亮应用程序中非常常见的错误。当您使用reactive()函数创建对象(如列表、数据.frame或向量)时,最典型的情况是出现这种情况–也就是说,您的对象对某种输入作出反应。如果执行此操作,则在以后

我有一个闪亮的应用程序,当我运行它时,我得到一个错误,说“closure”类型的
对象是不可子集的。这是什么?我该如何修复它

注意:我写了这个问题,因为这个问题经常出现,可能的重复要么与
无关,要么非常具体,以至于答案不明显适用于广泛的情况。

另请参见在非闪亮上下文中涵盖此错误的内容

如何解决此问题:

这是闪亮应用程序中非常常见的错误。当您使用
reactive()
函数创建对象(如
列表
数据.frame
向量
)时,最典型的情况是出现这种情况–也就是说,您的对象对某种输入作出反应。如果执行此操作,则在以后引用对象时,必须包含括号

例如,假设您制作了一个反应式
data.frame
,如下所示:

MyDF<-reactive({ code that makes a data.frame with a column called “X” })
在命令行中,您将得到相同的错误


当应用程序启动时,您可能看不到此错误。反应对象具有所谓的“惰性”评估。在某些输出需要它们之前,不会对它们进行评估。因此,如果您的
data.frame
仅用于制作绘图,则在用户第一次看到绘图之前,
data.frame
将不存在。如果应用程序启动时要求用户单击按钮或更改选项卡以查看绘图,则在该情况发生之前,
data.frame
的代码不会被计算。一旦发生这种情况,然后,也只有到那时,shiny才会使用输入的当前值来运行构建绘图所需的
data.frame
的函数。如果您忘记使用括号,此时shiny将给出错误。请注意,如果输入发生变化,但用户没有查看绘图,则在用户再次查看绘图之前,生成
data.frame
的函数不会重新运行。

回答得不错。我也遇到了这个错误,有些人是如何解决这个问题的。但对于可能遇到此问题的人来说,这很好。:)很好的解释。我想通过互联网联系你,拥抱你,因为这是一个重复,同样的错误正在发生,你不能子集一个闭包(函数),与闪亮的
(function(){})$x没有任何关系,
反应的
返回一个函数,因此,
mfDF$x
试图对一个你无法完成的函数进行子集划分,我倾向于同意@rawr的观点,因为这个错误与shiny无关,只是在shiny中遇到了很多。不过,您的回答中的解释很有用。我认为不同之处在于,许多新用户不会将反应式
数据.frames
等视为函数,而是将其视为
数据.frames
。因此,当他们看到一个讨论函数的非闪亮答案时,并不清楚它是如何应用的。也就是说,我同意这是同一个问题,但我认为另一个问题也很有用。那么为什么闪亮的用户不阅读手册呢<代码>?Shining::reactive
表示
值一个函数,封装在S3类“reactive”中
plot$x