警告:我是R的新手,sniny和co ==>我没有意识到这个问题是否有趣。
更新:事实证明这是一个闪亮的问题,它似乎是一个经常出现的问题,但这并不明显。请阅读所有答案,他们没有解决相同的情况。
我在DB中有一个数据库。 DBtoto <- reactive({DB()})
和DBtoto <- reactive({DB})
之间有区别吗?如果是这样,它是什么?
事实上,我没有看到BD()
(括号)的含义。
答案 0 :(得分:1)
是的,有区别。 DB()
是对名为DB
的函数的调用。 DB
是函数本身。如果它不是一个函数,那么DB()
没有意义,并会触发运行时错误(除非 的另一个对象>一个功能)。
reactive()
是一个Shiny
函数,表示其参数的值可能会随时间而变化。通常认为函数调用的值会发生变化会更有意义,但函数本身可能会发生变化(远程)。
答案 1 :(得分:0)
我还发现What is “object of type ‘closure’ is not subsettable” error in Shiny?的第一个答案解决了这个问题。总而言之,在闪亮中使用'reactive()'创建的所有内容都必须被称为函数。
在我的示例中,如果DB是被动的(例如DB <- reactive(read_DataBase())
),那么DB()
必须用括号引用。例如,要获取属性“x”,您必须编写BD()$x
。在我上面的'DBtoto'示例中,第一个表达式在DB本身被反应的情况下成立。