你能用R的原生数据编辑器从Shiny中编辑csv吗?

时间:2016-02-10 19:15:23

标签: r shiny

与R中的编辑功能非常相似,我想从Shiny中手动更改数据框。我去过闪亮的网站

http://shiny.rstudio.com/gallery/datatables-options.html

但是,我找不到可以手动更改数据的地方。

1 个答案:

答案 0 :(得分:3)

你可以用shinysky包做你想做的事。它提供了按需编辑表格的功能。下面是一个使用mtcars数据集的简单示例,您可以在其中更改表内容,然后下载在会话期间引入的更新。您可以轻松地将文件输入添加到自己阅读.csv文件

rm(list = ls())
library(shiny)
library(shinydashboard)
library(shinysky)

ui <- dashboardPage(
  dashboardHeader(title = "How to edit a table"),
  dashboardSidebar(sidebarMenu(id = "tabs",menuItem("Menu Item 1", tabName = "one", icon = icon("dashboard"))
  )),
  dashboardBody(
    tabItems(tabItem(tabName = "one",hotable("hotable1"),downloadButton('downloadData', 'Download')))
    ))

server <- function(input, output) {

  previous <- reactive({mtcars})
  sample_data <- reactive({

    if(is.null(input$hotable1)){return(previous())}
    else if(!identical(previous(),input$hotable1))
    {
      sample_data <- as.data.frame(hot.to.df(input$hotable1))
      sample_data
    }
  })
  output$hotable1 <- renderHotable({sample_data()}, readOnly = F)
  output$downloadData <- downloadHandler(filename = function() {paste(Sys.time(), '- My New Table.csv', sep='') },content = function(file) {write.csv(sample_data(), file, row.names = FALSE)})
}
shinyApp(ui, server) 

enter image description here

下载的文件如下所示:

enter image description here