根据用户输入Shiny设置数据框

 mobiledu2502887153 发布于 2023-01-29 18:41

我正在尝试构建一个Shiny应用程序,该应用程序在数据在服务器中处理之前对数据框进行子集化(仅包含分类变量与UI的用户选择输入匹配的行),然后在UI中进行可视化.我已经尝试了几种不同的方法但是我一直都会遇到错误,例如"类型'对象关闭'的对象不是子集"

然后当我尝试使用反馈用户输入时

target <- toString(reactive({input$value}))

我收到以下错误:

"as.vector(x,"character")中的错误:无法强制将类型'闭包'强制转换为'character'类型的向量

有任何想法吗?我认为我缺少一些概念性的东西.这是我的代码:

#Server
shinyUI(pageWithSidebar(

headerPanel("Pricing Analysis Tool"),

sidebarPanel(
selectInput("fruit", "Select fruit:", 
            choices = c(inventory), selected = "banana", multiple = FALSE),
numericInput("delta", "Price Change (%):", 10),
submitButton("Run Simulation")),

mainPanel(
plotOutput("PricePlot")
)))


#server
shinyServer(function(input, output, session) {

target_inventory <- reactive({inventory$product == input$fruit})
...

})

一旦我的库存数据是子集,只包括我正在评估的产品,那么我将使用renderPlot生成图表.我正在根据用户输入挂断子集.我是否应该使用其他方法根据用户输入动态子集更大的数据集?

非常感谢你的帮助,诺亚

更新:我能够根据变量用户输入成功对数据进行子集化,然后操作子集并使用我的服务器文件中的代码将其可视化(谢谢你,nivangio,用于发布我在R-blogger上用作模板的代码:http://www.r-bloggers.com/dashboards-in-r-with-shiny-and-googlevis/)

target_inventory <- reactive({
    a <- subset(inventory, inventory$product %in% input$fruit)
    a <- droplevels(a)
return(a)
})

创建子集后,我可以通过将其引用为target_inventory()将其用于动态图形中

1 个回答
  • 我有同样的问题,并花了几个小时试图解决它.一旦分配了反应对象,就需要使用target_inventory()来引用它(如注释部分中提到的BenBarnes).

    这是一个MWE(最低工作示例)

    ui.R

    #ui
    library(shiny)
    
    shinyUI(fluidPage(
      #User dropbox
      selectInput("state", "Choose state", choices=c("MA", "CA", "NY"))
      #Print table to UI
      ,tableOutput("table1")
    ))
    

    server.r

     #server
    library(shiny)
    
    shinyServer(function(input,output){
    
      category <- c("MA", "CA", "NY")
      population <- c(3,8,4)
    
      df <- data.frame(category,population)
    
      df_subset <- reactive({
        a <- subset(df, category == input$state)
        return(a)
      })
    
      output$table1 <- renderTable(df_subset()) #Note how df_subset() was used and not df_subset
    
    
    })
    

    2023-01-29 18:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有