Переименовать имена столбцов в DT в Shiny - PullRequest
0 голосов
/ 14 апреля 2020

Есть ли способ переименовать имена столбцов в таблице DT в блестящие. Мои оригинальные имена столбцов в DT приведены ниже

colnames(DT_table) <- c("AB", "BC", "CD")

##rename column names to (inside renderDT)
colnames(DT_table) <- c("AB", "New BC", "New CD")


    output$table <- DT::renderDT({           
        datatable(
            DT_table,
            rownames = F, 
            escape = FALSE,
        ) 
    })

1 Ответ

0 голосов
/ 14 апреля 2020

Вы можете выполнить переименование внутри сервера, вне сервера или внутри 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)

Output

Вы можете разместить новые имена столбцов внутри 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)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...