[英]How to add new data to dataframe in R -shiny app server
在我的 Shiny 應用程序中,我想將輸入字段的內容保存為帶有操作按鈕的 dataframe 中的新行。 我在服務器 function 之外創建了一個空的 dataframe 並想通過 rbind 添加內容。 這在 R 中也很好用,但在 Shiny 中顯然不行。我的誤解是什么? 這是一個帶有一個字段的簡化示例
library(shiny)
#create an empty dataframe
df <- data.frame(name = character(), stringsAsFactors = FALSE)
ui <- fluidPage(
textInput("name", "Enter Name"),
actionButton("add", "Add Data to table"),
tableOutput ("result")
)
server <- function(input, output) {
data <- reactive (data.frame(name = input$name))
#add data to df
observeEvent(input$add, {
df <- rbind(df,data())
})
output$result <- renderTable(df)
}
shinyApp(ui, server)
您可以使用reactiveVal
來更新數據。 這對於每個 session 都是唯一的,如果你想從 append 到 dataframe 全局使用<<-
library(shiny)
#create an empty dataframe
df <- data.frame(name = character(), stringsAsFactors = FALSE)
ui <- fluidPage(
textInput("name", "Enter Name"),
actionButton("add", "Add Data to table"),
tableOutput ("result")
)
server <- function(input, output) {
df_server <- reactiveVal(df)
data <- reactive({
req(input$name)
data.frame(name = input$name)
})
#add data to df
observeEvent(input$add, {
temp_df <- rbind(df_server(),data())
df_server(temp_df)
})
output$result <- renderTable(df_server())
}
shinyApp(ui, server)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.