R Shiny:使用输出中的变量在函数之外进行进一步的计算

时间:2018-07-25 07:38:35

标签: r variables server shiny global

到目前为止,我的闪亮应用程序外观如下(提取):

var routes = require('./router.js')
app.use(?,routes)

稍后在代码(服务器)中,我想从输入“ bipop”中提取一些数据以创建一些新表,这些表将作为另一个输出的一部分。

我的审判

ui <- fluidPage(


 headerPanel("title"),

   sidebarLayout(

         sidebarPanel(


              h4("header"),
              tags$hr(),


  # Input: Bilanzpositionen Passiv ----

      fileInput("file1", "Kollektive hochladen",
                multiple = TRUE,
                accept = c("text/csv",
                           "text/comma-separated-values,text/plain",
                           ".csv")),
)
)
)
# # # # # 

server <- function(input, output) {



  output$contents <- renderTable({


    req(input$file1)

    bipop <- read.csv(input$file1$datapath,

                  sep = input$sep,
                  quote = input$quote)

    if(input$disp == "head") {
      return(head(bipop))
    }
    else {
      bipop
    }


  })

}

不起作用:“错误:...已选择未定义的列...”和“错误:未找到对象”

如何将变量“ bipop”定义为全局变量,以便可以在“输出”的代码之外使用它?

谢谢。

1 个答案:

答案 0 :(得分:1)

为扩展@ A.Suliman的评论,这是一个完整的示例。

library(shiny)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      h4("header"),
      tags$hr(),

      # Input: Bilanzpositionen Passiv ----
      fileInput("file1", "Kollektive hochladen",
                multiple = TRUE,
                accept = c("text/csv",
                           "text/comma-separated-values,text/plain",
                           ".csv"))
    ),

    mainPanel(
      tableOutput("contents"),
      verbatimTextOutput("test")
    )

  )
)

# # # # # 

server <- function(input, output) {

  bipop <- eventReactive(input$file1, {
    read.csv(input$file1$datapath)
  })

  output$contents <- renderTable({
    bipop()
  })

  output$test <- renderPrint({
    summary(bipop())
  })

}

shinyApp(ui, server)