我在采用良好的对象类型流时遇到很多麻烦,因为闪亮的R反应对象是结构化的,并通过我的应用程序移动数据。如果我尝试dplyr::filter()
被动内容并将其返回base::data.frame
或DT::data.table
,则尤其如此。
我看到了很多建议,只是df()$element
就像任何关闭一样,"但在很多情况下(比如Highcharter或使用%in%
来检查集合)我必须先存储(df <- df()
)才能使用x %in% df
......
说我有
> foo <- reactiveValues()
> str(foo)
List of 3
$ impl :Classes 'ReactiveValues', 'R6' <ReactiveValues>
Public:
.allValuesDeps: environment
.dependents: environment
.label: reactiveValues8306
.metadata: environment
.namesDeps: environment
.setLabel: function (label)
.values: environment
.valuesDeps: environment
clone: function (deep = FALSE)
freeze: function (key)
get: function (key)
getMeta: function (key, metaKey)
initialize: function ()
isFrozen: function (key)
mset: function (lst)
names: function ()
self: ReactiveValues, R6
set: function (key, value)
setMeta: function (key, metaKey, value)
thaw: function (key)
toList: function (all.names = FALSE)
$ readonly: logi FALSE
$ ns :function (x)
- attr(*, "class")= chr "reactivevalues"
我可以在此反应中存储data.frame
,就像我在过滤时经常这样:
> foo$config <- data.frame(a = c(1,2,3), b = c(4,5,6))
但是,现在我只能让自己陷入困境:
> foo()
Error: could not find function "foo"
> foo$config
Error in .getReactiveEnvironment()$currentContext() :
Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)
> foo()$config
Error: could not find function "foo"
通常在闪亮的应用程序构建过程的这一点上,我试图将对象强力装入我想要的形式。通过对renderPrints
和typeof()
的{{1}}来电,检查该对象通常会告诉我这是我正在寻找的对象(&#34; class()
&#34 ;,&#34; list
&#34;或&#34; data.table
&#34;)但该对象通常不符合{{1}调用的预期输出或图形库中的美学映射,如ggplot或highcharter。
有人能让我更好地了解发生了什么吗?相关问题here。