![](/img/trans.png)
[英]How can I display a dataframe in a Shiny app as a grid, and not a table?
[英]Append to end of dataframe and display as table in Shiny app
我正在嘗試創建一個非常簡單的應用程序,用戶可以在其中輸入文本字段和數字,將其附加到 dataframe,然后將 dataframe 顯示為表格。 我已經完成了 99%,但唯一的問題是新條目正在覆蓋舊條目,因此您只能在數據框中獲得一行,在顯示的表格中獲得一行。
這是一個可重現的示例:
library(shiny)
library(DT)
shinyApp(
ui = navbarPage("Making a dataframe and displaying it",
tabPanel("Input",
mainPanel(
textInput("text", "Text input", ""),
numericInput("number", "Numeric input", min=1, value = 1),
actionButton("submit", "Submit")
)
),
tabPanel("The list",
DT::dataTableOutput("thelist")
)
),
server = function(input, output) {
initial <- data.frame("text" = character(), "number" = numeric())
thelist <- eventReactive(input$submit,{rbind(initial,
data.frame("text" = input$text, "number" = input$number))
})
output$thelist = renderDataTable(thelist())
}
)
謝謝!
您可以將 dataframe 放入reactiveValues
並使用observeEvent
在點擊時添加新行。
library(shiny)
library(DT)
shinyApp(
ui = navbarPage("Making a dataframe and displaying it",
tabPanel("Input",
mainPanel(
textInput("text", "Text input", ""),
numericInput("number", "Numeric input", min=1, value = 1),
actionButton("submit", "Submit")
)
),
tabPanel("The list",
DT::dataTableOutput("thelist")
)
),
server = function(input, output) {
rv <- reactiveValues(data = data.frame(text = character(), number = numeric()))
observeEvent(input$submit,{
rv$data <- rbind(rv$data, data.frame(text = input$text, number = input$number))
})
output$thelist = renderDataTable({
rv$data
})
}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.