【问题标题】:r Shiny action button and data table output last N rowsr 闪亮的操作按钮和数据表输出最后 N 行
【发布时间】:2020-04-05 21:49:48
【问题描述】:

我需要关于操作按钮只能工作一次的帮助。如果您单击按钮,它将显示图形、表格和一些文本。但是,如果您想更改侧边栏上的某些内容(例如颜色),它会改变,而您不必按下按钮...(我需要:如果您想更改某些颜色,值..您需要始终推动操作按钮确认它不能改变没有按钮) 此外,我只需要显示表 airquality 中的最后 N 行,这取决于 numericID 输入。谁能帮我?

library(shiny)

# Define server logic required to draw a histogram
shinyServer(function(input, output) { 

  observeEvent(input$gobutton, {
    output$textik <- renderText({
      vypis=c("Zobrazili ste tabuľku s", input$numericID, "riadkami a boxplot pre atribút Ozone ste nastavili na farbu ", input$radioID)
      print(vypis)
    })

    output$table <- renderTable(airquality)

    output$distPlot <- renderPlot({
      x    <- airquality[,input$selectID]
      boxplot(x~airquality$Month,  col = input$radioID, border = 'white', main=input$textID)
    })
  })

})

# Define UI for application that draws a histogram
shinyUI(fluidPage(

  # Application title
  titlePanel("Dáta Airquality"),

  # Sidebar with a slider input for number of bins
  sidebarPanel(
    numericInput("numericID","PoÄet riadkov tabuľky",value=6, min=1, max=100, step=5),
    selectInput("selectID","Vyberte atribút",choices=c(colnames(airquality))),
    radioButtons("radioID","Vyberte farbu grafu", choices=c("yellow","green")),
    textInput("textID","Zadajte nadpis grafu", value ="Nadpis"),
    actionButton("gobutton","Start")
  ),

  # Show a plot of the generated distribution
  mainPanel(           
    plotOutput("distPlot"),
    tableOutput("table"),
    textOutput("textik")
  )

))

【问题讨论】:

  • 感谢本 IT 人员的工作,现在最大的问题是那个按钮。我不知道怎么做.. 就像你在你已经坚持动作按钮之后改变颜色一样,它会改变而无需再次按下动作按钮。并且总是如果你改变的东西比你需要按下操作按钮,然后一切都可以改变你在侧边栏中插入的输入,但它会自动改变..第一次按下后不需要按下按钮

标签: r shiny


【解决方案1】:

@Tomáš - 我建议避免将您的 output 语句放在 observeEvent 中。相反,我会创建一个eventReactive,它将由您的操作按钮触发。发生这种情况时,它会将您需要的所有信息存储在一个列表中,并且您的所有输出都将依赖于该列表。这是执行此操作的一种方法(以下仅是 server 函数)。

server <- function(input, output) {

  aq_data <- eventReactive(input$gobutton, {
    list(data = airquality, nID = input$numericID, rID = input$radioID, sID = input$selectID, tID = input$textID)
  }) 

  output$textik <- renderText({
    vypis=c("Zobrazili ste tabuľku s", aq_data()[["nID"]], "riadkami a boxplot pre atribút Ozone ste nastavili na farbu ", aq_data()[["rID"]])
    print(vypis)
  })

  output$table <- renderTable(tail(aq_data()[["data"]], aq_data()[["nID"]]))

  output$distPlot <- renderPlot({
    dat <- aq_data()
    boxplot(reformulate("Month", dat[["sID"]]), col = dat[["rID"]], border = 'white', main = dat[["tID"]], data = dat[["data"]])
  })

}

【讨论】:

  • 非常感谢本!
猜你喜欢
  • 2018-03-13
  • 2019-07-15
  • 2023-01-14
  • 2017-03-03
  • 2015-12-12
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 2017-02-16
相关资源
最近更新 更多