Вы можете выполнить переименование внутри сервера, вне сервера или внутри renderDT
. Не уверен, почему это не работает для вас. Я делаю это вне сервера, так как данные * * * * * * * *. Делайте это только на сервере, если данные изменяются в зависимости от пользовательских данных, но они также будут работать там.
library(shiny)
ui <- fluidPage(
DT::DTOutput("table")
)
DT_table <- data.frame(a = 1:10, b = 11:20, c = 21:30)
colnames(DT_table) <- c("AB", "BC", "CD")
server <- function(input, output, session) {
output$table <- DT::renderDT({
##rename column names to (inside renderDT)
colnames(DT_table) <- c("AB", "New BC", "New CD")
DT::datatable(
DT_table,
rownames = F,
escape = FALSE,
)
})
}
shinyApp(ui, server)
Вы можете разместить новые имена столбцов внутри renderDT()
перед вызовом datatable()
, и на выходе будут показаны имена столбцов из вызова renderDT
. См. Ниже:
library(shiny)
ui <- fluidPage(
DT::DTOutput("table")
)
DT_table <- data.frame(a = 1:10, b = 11:20, c = 21:30)
colnames(DT_table) <- c("AB", "BC", "CD")
server <- function(input, output, session) {
output$table <- DT::renderDT({
##rename column names to (inside renderDT)
colnames(DT_table) <- c("AB", "Changed BC", "Changed CD")
DT::datatable(
DT_table,
rownames = F,
escape = FALSE,
)
})
}
shinyApp(ui, server)