从闪亮的用户那里获取数据帧的最佳方法

时间:2015-04-02 13:23:03

标签: r dataframe shiny

我正在尝试创建一个闪亮的应用程序,我希望用户输入数据框的一些(但可变数量)行(有3列)。最好的方法是让用户一次输入一行,也可以按下按钮创建一个新行。

在闪亮的gui中实现这一点的直观方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

rm(list = ls())
library(shiny)
# Sample data
my_data <- data.frame(matrix(1,nrow=1,ncol=3))
colnames(my_data) <- c("one","two","three")
emptry_row <- as.data.frame(matrix(1,nrow=1,ncol=3))
colnames(emptry_row) <- colnames(my_data)

ui =fluidPage(
  sidebarPanel(actionButton("add_row", "Add a row")),
  mainPanel(dataTableOutput("my_table"))
)

server = function(input, output, session){

  values <- reactiveValues()
  values$df <- my_data

  newEntry <- observe({
    if(input$add_row > 0) {
      isolate(values$df <- rbind(values$df, emptry_row))
    }
  })
  output$my_table <- renderDataTable({
    if(input$add_row==0){return(values$df)}
    values$df
  })
}
runApp(list(ui = ui, server = server))