如何强制反应数据框的内容?

时间:2017-03-14 15:42:47

标签: r dataframe ggplot2 highcharts shiny

我在采用良好的对象类型流时遇到很多麻烦,因为闪亮的R反应对象是结构化的,并通过我的应用程序移动数据。如果我尝试dplyr::filter()被动内容并将其返回base::data.frameDT::data.table,则尤其如此。

我看到了很多建议,只是df()$element就像任何关闭一样,&#34;但在很多情况下(比如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"

通常在闪亮的应用程序构建过程的这一点上,我试图将对象强力装入我想要的形式。通过对renderPrintstypeof()的{​​{1}}来电,检查该对象通常会告诉我这是我正在寻找的对象(&#34; class()&#34 ;,&#34; list&#34;或&#34; data.table&#34;)但该对象通常不符合{{1}调用的预期输出或图形库中的美学映射,如ggplot或highcharter。

有人能让我更好地了解发生了什么吗?相关问题here

0 个答案:

没有答案