Я использую функцию данных из пакета DT в R Shiny и хочу, чтобы пользователь моего приложения мог редактировать имена столбцов (имена переменных).Есть ли возможность сделать это?
Пока я использую текстовый ввод "old_var_name", текстовый ввод "new_var_name" и кнопку действия "update_variable_name".Но на данный момент я могу изменить только имя переменной в данный момент.Я хочу, чтобы пользователь мог изменять столько имен переменных, сколько он хочет.
Сервер:
tab <- eventReactive(input$import,{
inFile <- input$file1
if (is.null(inFile))
return(NULL)
tabledata <- read.xlsx(inFile$datapath,startRow=1,sheet = 1)
})
name_temp <- eventReactive(input$var_name,{
if (input$old_name == ""){
colnames(tab())
} else {
c(colnames(tab())[1:(which(colnames(tab()) == input$old_name)-1)],input$new_name,
colnames(tab())[(which(colnames(tab()) == input$old_name)+1):length(colnames(tab()))])
}
})
final_rename <- reactive({
d <- tab()
colnames(d) <- name_temp()
d
})
output$tabledata <- DT::renderDataTable({
if (input$var_name == 0) {
DT::datatable(tab(),editable = T)
} else {
DT::datatable(final_rename(),editable = T)
}
})
Пользовательский интерфейс:
tabPanel("Table",h1("Table",align="center") ,
actionButton(inputId = "import", label = "Import data"),br(),br(),
splitLayout(textInput(inputId = "old_name", label = "Old variable name"),
textInput(inputId = "new_name", label = "New variable Name")),
actionButton(inputId = "var_name", label = "Update Variable name"),br(),br(),
DT::dataTableOutput("tabledata"))
Есть ли какие-либо предложения длядостичь этого или любого другого параметра с помощью datatable, который я могу использовать, и тогда пользователь сможет изменять все имена переменных, которые он хочет?