R 将可编辑的数据表写入.csv文件

R 将可编辑的数据表写入.csv文件,r,shiny,shinydashboard,R,Shiny,Shinydashboard,我正在编写一个闪亮的应用程序,加载姓名和日期列表,并将其显示在数据表中 我想使用datatables的可编辑功能,允许用户更新其中一个日期,单击保存按钮并用更新的数据覆盖原始数据 这就是我目前所拥有的 library(shiny) library(shinydashboard) library(tidyverse) library(DT) users <- reactiveFileReader( intervalMillis = 100000, NULL, filePa

我正在编写一个闪亮的应用程序,加载姓名和日期列表,并将其显示在数据表中

我想使用datatables的
可编辑
功能,允许用户更新其中一个日期,单击保存按钮并用更新的数据覆盖原始数据

这就是我目前所拥有的

library(shiny)
library(shinydashboard)
library(tidyverse)
library(DT)


users <- reactiveFileReader(
  intervalMillis = 100000,  
  NULL,
  filePath = 'appData/userTest.csv',
  readFunc = read.csv,
  stringsAsFactors = FALSE
)

header <- dashboardHeader(title = "demo")
sidebar <- dashboardSidebar(uiOutput('sidebar'))
body <- dashboardBody(uiOutput("body"))

f1 <- fluidRow(
  box(
    dataTableOutput('userTable'),
    width = 6
  )
)

ui <- dashboardPage(title = 'admin function test', header, sidebar, body, skin='blue')

server <- function(input, output, session){

  output$body <- renderUI({
    tabItems(
      tabItem(
        tabName = 'admin', class = 'active', h2(f1)
      )
    )
  })

  output$sidebar <- renderUI({
    sidebarMenu(id = 'sidebarmenu',
                menuItem("admin", tabName = "admin", icon = icon("adjust")),
                actionButton("do", 'save', icon = icon('redo'))
    )
  })

  observeEvent(
    input$do,{
      write.csv(users(),'appData/userTest.csv', row.names = FALSE)
    })

  output$userTable <- renderDataTable({
    DT::datatable(users(),
                  editable = TRUE)
  })
}

shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinydashboard)
图书馆(tidyverse)
图书馆(DT)

用户因此我发现添加以下内容:

edited <- reactive({editData(users(), input$userTable_cell_edit, proxy = NULL, rownames = FALSE, resetPaging = FALSE)})

observeEvent(
    input$do,{
      write.csv(edited(),'appData/userTest.csv', row.names = FALSE)
    })
已编辑
edited <- reactive({editData(users(), input$userTable_cell_edit, proxy = NULL, rownames = FALSE, resetPaging = FALSE)})

observeEvent(
    input$do,{
      write.csv(edited(),'appData/userTest.csv', row.names = FALSE)
    })