【问题标题】:R Shiny Error: "Object of Type Closer is not Subsettable"R Shiny 错误:“类型更接近的对象不可子集”
【发布时间】:2017-02-07 19:13:12
【问题描述】:

我第一次使用 renderDataTable 函数,我将一个反应变量传递给它,如下所示:

x<-reactive ({x[1:3]<-input$num 
    }) 
    output$table <- renderDataTable(x())

当我运行应用程序时,我被告知“'closure' 类型的对象不是子集的”。

我所知道的

我知道这个错误很可能是因为我传递的是一个名为 x 的函数,而不是一个数据框。

我不知道的事

我该如何解决这个问题?我非常需要通过renderDataTable 传递x()。我尝试将它设置为等于另一个变量并以这种方式传递它,但它不起作用。

您能否就在这种情况下如何使用 renderDataTable 给我一些建议?

【问题讨论】:

  • 我不认为你可以为output$table 使用像table 这样的通用名称尝试不同的名称。
  • x[1:3]&lt;-input$num 应该做什么?

标签: r shiny


【解决方案1】:

我认为这应该可行。否则请告诉我。

myx<-reactive ({
     x[1:3]<-input$num 
     x
}) 
output$table <- renderDataTable(data.frame(x=myx()))

【讨论】:

  • 太棒了!谢谢。为什么您认为我的代码不起作用而您的代码起作用?
  • 该错误表明您的x() 令人困惑。如果您的反应函数获得正确的对象,它不应该抱怨。所以我特地在反应函数中返回对象x。另外,我不确定当您使用x 作为与您的名为x 的向量相同的名称时是否重要。因此我使用myx 而不是x。希望这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 2018-06-22
  • 2017-03-30
  • 1970-01-01
相关资源
最近更新 更多