繁体   English   中英

R Shiny:如何在ui.R中使用来自server.R的数据帧变量

[英]R Shiny: how to use a dataframe variable from server.R in ui.R

我试图使用ui.R中server.R的values $ df dataframe变量在侧面板中将数据框的所有字段名称显示为复选框。 但是我收到一条错误消息,指出错误:找不到对象“值”

这是server.R文件中的文件:

  values<- reactiveValues() 
  values$df<- data.frame() # creates an empty dataframe

  # actionButton 
  mdf<- eventReactive(input$click_counter, {
    name<- input$name
    gender<- input$gender
    college<- input$college
    team<- input$team
    score<- input$score

    new_row<- data.frame(name,college,gender,team,score)

    return(new_row)
  })

  observeEvent(input$click_counter, {
    name<- input$name
    gender<- input$gender
    college<- input$college
    team<- input$team
    score<- as.numeric(input$score) # convert to numeric here to make sorting possible
    rank<- 0


    new_row<- data.frame(rank,name,college,gender,team,score)


    values$df<- rbind(values$df, new_row)
    values$df<- values$df[order(-values$df$score),]
    values$df$rank<- 1:nrow(values$df)
  })

  output$nText<- renderDataTable({
    mdf()
  })

  output$nText2<- renderDataTable({
    values$df
  }, options = list(orderClasses = TRUE,lengthMenu = c(5, 10, 30), pageLength = 5))

这就是ui.R文件中的内容:

sidebarLayout(
  sidebarPanel(
    checkboxGroupInput('nText2',
                       'Columns in players to show:',
                       names(values$df),
                       selected = names(values$df))
  ),

我不确定何时分配values对象。 但是,如果您尚未使用global.R文件,建议您使用一个。 您可以在其中分配values并且该对象将在server.Rui.R中都可用。 将global.R与其他两个文件放在同一文件夹中。

通过使服务器呈现UI,可以像处理其他服务器端操作一样继续处理数据框。 如果没有可重现的数据帧,我不能肯定地说这个数据帧是否可以工作,但是我希望这能给您一个很好的推动。

server.R:

output$nText2ui <- renderUI({checkboxGroupInput('nText2',
                          'Columns in players to show:',
                          names(values$df),
                          selected = names(values$df))
                         })

ui.R:

sidebarLayout(
  sidebarPanel(
   htmlOutput("nText2ui")
    )
  )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM