繁体   English   中英

我们可以从 shiny 的渲染表中观察 output

[英]can we observe output from rendertable in shiny

我有一个应用程序,它有一个反应表(基于 2 个 selectInputs)和一个图表。 图的数据取自反应表。

所以图表和表格都使用相同的数据。 因此,在构建图表时,我可以观察表格的内容吗?

或者我应该在图表中再次阅读同一张表吗? 我的意思是我们应该在下面再次调用head(iris,n = as.numeric(input$rows))两次吗?

例子,

library(shiny)
library(DT)
library(rAmCharts)

ui <- fluidPage(
  selectInput("rows","Rows",c(1:150)),
  dataTableOutput("input_table"),
  amChartsOutput("barplot",width = 750, height = 500)
)

server <- function(input, output, session) {
  
  output$input_table <- renderDataTable({
    new_iris <- head(iris,n = as.numeric(input$rows))
    datatable(new_iris)
  })
  
  
  
  output$barplot <-  renderAmCharts({
    new_iris1 <- head(iris,n = as.numeric(input$rows))  ## should i call this again???????? Cannot we use from rendertable?
    new_iris1 <- new_iris1 %>% group_by(Species) %>% summarise(total = sum(Petal.Length))
    pipeR::pipeline(
      amBarplot(
        x = "Species",
        y = "total",
        ylab = "X",
        xlab = "Y",
        data = new_iris1,
        labelRotation = 90
      ),
      setChartCursor()
    )
    
  })
}

shinyApp(ui, server)

您可能希望将数据 object 放在reactive表达式中,这样您就可以看到正在呈现的内容,就像这样,您可以稍后在您的应用程序中访问data()

library(shiny)
library(DT)
library(dplyr)
library(rAmCharts)

ui <- fluidPage(
  selectInput("rows","Rows",c(1:150)),
  dataTableOutput("input_table"),
  amChartsOutput("barplot",width = 750, height = 500)
)

server <- function(input, output, session) {
  
  data <- eventReactive(input$rows,{
    head(iris,n = as.numeric(input$rows))
  })

  output$input_table <- renderDataTable({
    datatable(data())
  })
  
  output$barplot <-  renderAmCharts({
    new_iris1 <- data()
    new_iris1 <- new_iris1 %>% group_by(Species) %>% summarise(total = sum(Petal.Length))
    pipeR::pipeline(
      amBarplot(
        x = "Species",
        y = "total",
        ylab = "X",
        xlab = "Y",
        data = new_iris1,
        labelRotation = 90
      ),
      setChartCursor()
    )
    
  })
}

shinyApp(ui, server)

暂无
暂无

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

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