[:类型为“closure”的对象在我使用plotly时不可子集时出错

[:类型为“closure”的对象在我使用plotly时不可子集时出错,r,shiny,R,Shiny,我正在Shining app o rstudio中开发一个应用程序,我的应用程序的第二个选项卡中有一个问题 你看,我的应用程序的第二个选项卡加载了一个写在app.R文件中的data.frama,并将其打印到rhandsome表上,这个选项卡有一个selectinput,允许我在data.frames之间进行更改,这是我能够通过reactivevalues函数完成的一些操作,相应地,它对我使用plotly生成的绘图做了相同的事情问题在于我正在尝试根据选定的data.frame和选定的 我试着用反应

我正在Shining app o rstudio中开发一个应用程序,我的应用程序的第二个选项卡中有一个问题

你看,我的应用程序的第二个选项卡加载了一个写在app.R文件中的data.frama,并将其打印到rhandsome表上,这个选项卡有一个selectinput,允许我在data.frames之间进行更改,这是我能够通过reactivevalues函数完成的一些操作,相应地,它对我使用plotly生成的绘图做了相同的事情问题在于我正在尝试根据选定的data.frame和选定的

我试着用反应函数来做,就像这样

X.var<-reactive({
    output$varx <- renderUI({
      selectInput("variablex", "Seleccione la variable X", choices=names(TablaD()))
    })
  })
output$plot_three <-renderPlotly({
    plot_ly(data=I.Plot(), x = ~X.var(), y = ~Y.var(), name = 'High 2014', type = 'scatter', mode = 'lines',
            #x = ~Produccion_de_Energia_Neta, y = ~Produccion_de_Energia_Neta
            line = list(color = 'rgb(205, 12, 24)', width = 4)) %>%

      layout(title = "Grafico Lineal",
             xaxis = list(title = "Valores"),
             yaxis = list (title = "Kwh"))
  })
我应该如何引入变量x=~x.var和y=~y.var,以便plotly能够接受它们并进行绘图

这是代码,就像我之前说的,很长,因为我的应用程序有三个标签。我的问题在第二个标签中。再次感谢你的帮助,我为我的失礼道歉。祝你愉快

有光泽的图书馆 图书馆 图书馆仪表板 图书馆汉森表 图书馆开发工具 图书馆GGPLOT2 图书馆卓越 图书馆 图书馆 datos基准表第2段
y无需将这些新创建的输入放在反应式表达式中。如前所述,它们的行为类似于普通输入。因此,您应该这样在绘图中介绍您的输入。在这里,我使用了mtcars数据集:


当你问问题时,你真的应该包括一个,这样我们可以很快看到你的问题是什么。

在标题中大喊“请帮助!!!!不会像格式正确的PostMay那样迅速得到帮助。作者说,一般来说,如果你遇到这个错误,这意味着你试图子集一个函数或以某种方式访问它这是一个使用$的函数中的一个项,在正常的R代码中,它在大多数情况下都没有多大意义。您好,首先,我想为大喊或放“请帮帮我”而道歉!!!在标题中,我这么做是因为我尽了我所能,但仍然没有得到任何结果我甚至检查了CoolBut无用的页面,但在来到这里之前没有成功d我有点绝望,我在这条评论中加入了代码,当时我没有这样做,因为代码实际上相当大。你好,bretauv先生,谢谢你的帮助,到目前为止,我尝试了你发布的示例,它非常有帮助,但现在我想问你一些问题,在我的shinyApp工作中,我试图允许用户使用选择输入在data.frames之间进行更改,我还对其进行编程,使绘图会相应地更改直方图、饼图和线性绘图。正如我之前所说,我想做的是,根据我在选择输入中的选择,在plotly中引入的值会发生更改。它是这样工作的吗我提供的de应该是这样做的。你试过了吗?我不明白你是否想要与此代码不同的东西。我试过了你提供的示例,然后我尝试了你向我展示的相同想法,但使用了x=~I.Plot[,input$variablex]但当我这样尝试时,我得到了一个空白图。首先,你需要从反应式表达式中获取renderUI表达式。此外,当我启动完整应用程序时,这些uiOutput不会呈现,这意味着你的ui或服务器中存在问题。你应该使用数据或数据子集创建一个小应用程序,移除所有无用的组件,即与您的问题无关的组件,并尝试查看这些uiOutput为什么不呈现。当您确定这一点后,尝试绘制绘图。我从反应式表达式中取出了renderUI表达式,正如您告诉我的,它起了作用,非常感谢先生。我可以问一些其他问题吗?如y您知道我的代码中使用的所有数据帧都是在它之前编写的,但是您知道让程序从另一个.R文件读取它们的方法吗?
output$plot_three <-renderPlotly({
    plot_ly(data=I.Plot(), x = ~X.var(), y = ~Y.var(), name = 'High 2014', type = 'scatter', mode = 'lines',
            #x = ~Produccion_de_Energia_Neta, y = ~Produccion_de_Energia_Neta
            line = list(color = 'rgb(205, 12, 24)', width = 4)) %>%

      layout(title = "Grafico Lineal",
             xaxis = list(title = "Valores"),
             yaxis = list (title = "Kwh"))
  })
Warning: Error in [: object of type 'closure' is not subsettable
  104: recurse
  103: FUN
  102: lapply
  101: traceify
  100: plotly_build.plotly
   96: getFromNamespace("prepareWidget", "plotly")
   95: func
   82: origRenderFunc
   81: output$plot_three
    1: runApp
library(shiny)
library(plotly)

ui <- basicPage(
  mainPanel (
    uiOutput("varx"),
    uiOutput("vary"),
    plotlyOutput("plot_three")
  )
)

server <- function(input, output){

  output$varx <- renderUI({
    selectInput("variablex", "Seleccione la variable X", choices=names(mtcars), selected = "mpg")
  })

  output$vary <- renderUI({
    selectInput("variabley", "Seleccione la variable y", choices=names(mtcars), selected = "gear")
  })

  output$plot_three <-renderPlotly({
    plot_ly(data=mtcars, x = ~ mtcars[, input$variablex], y = ~ mtcars[, input$variabley])

  })


}

shinyApp(ui, server)