Я работаю с пакетом DTedit и хотел бы реализовать две функции.Я прилагаю пример кода из пакета github автора пакета.Я хотел бы реализовать две вещи:
- кнопка, которая сохраняет данные после любых новых дополнений или изменений в таблице в локальном файле.В идеале мы можем добавить все новые дополнения (или редакции) в существующий CSV-файл.Приложение будет на сервере rstudio, поэтому мы можем добавить этот файл в папку www.
Вторая функция заключается в том, что приложение должно извлекать данные из csv и показывать их, когда пользовательоткрывает приложение, вместо того, чтобы показывать пустую таблицу, подобную той, что была в коде ранее.
Я пробовал несколько вариантов и посмотрел несколько учебных пособий в Интернете, но покаЯ не смог решить эти два вопроса.
library(shiny)
library(DTedit)
##### Create the Shiny server
server <- function(input, output) {
mydata <- data.frame(name = character(),
email = character(),
useR = factor(levels = c('Yes', 'No')),
notes = character(),
stringsAsFactors = FALSE)
##### Callback functions.
my.insert.callback <- function(data, row) {
mydata <- rbind(data, mydata)
return(mydata)
}
my.update.callback <- function(data, olddata, row) {
mydata[row,] <- data[1,]
return(mydata)
}
my.delete.callback <- function(data, row) {
mydata <- mydata[-row,]
return(mydata)
}
##### Create the DTedit object
DTedit::dtedit(input, output,
name = 'mycontacts',
thedata = mydata,
edit.cols = c('name', 'email', 'useR', 'notes'),
edit.label.cols = c('Name', 'Email Address', 'Are they an R user?', 'Additional notes'),
input.types = c(notes='textAreaInput'),
view.cols = c('name', 'email', 'useR'),
callback.update = my.update.callback,
callback.insert = my.insert.callback,
callback.delete = my.delete.callback)
}
##### Create the shiny UI
ui <- fluidPage(
h3('DTedit Template'),
uiOutput('mycontacts')
)
##### Start the shiny app
shinyApp(ui = ui, server = server)