R блестящий столбец данных, разделенный линией - PullRequest
0 голосов
/ 22 сентября 2018

Я генерирую Datatable на моем блестящем сервере, как:

x=renderTable(rownames = FALSE,{...}

И у меня есть такой интерфейс:

 tableOutput("x")

Теперь я хочу, чтобы каждый второй столбец разбиения отмечался как линия,Например:

a   b | c   d | e  ...
1   2 | 2   3 | 4  ...
4   3 | 1   2 | 3  ...
3   1 | 5   5 | 5  ...

Я надеюсь, что кто-то может мне помочь.Спасибо

1 Ответ

0 голосов
/ 22 сентября 2018

Я использовал подмножество mtcars набора данных для генерации этого вывода.Ниже приведен самодостаточный воспроизводимый пример для того же.Нужно использовать CSS Styling для достижения этого эффекта.Дополнительная информация для расширенного стиля доступна здесь

library(DT)
library(shiny)
library(datasets)


ui <- fluidPage(

  dataTableOutput("table")

)

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

  mtcars <- mtcars %>% select(1:8)
  row.names(mtcars) <- NULL

  output$table <- renderDataTable({

    # Initiate Empty Vector for Alternative border formating
    alt_vector <- vector(mode = "numeric")

    # Iterate over the no. of columns in the table to generate the vector
    for (i in 1:ncol(mtcars)) { 
      if(i %% 2 == 0) 
        alt_vector <- c(alt_vector,i)
    }

      df <- datatable(mtcars,rownames = FALSE, options = list(pageLength = 25)) %>%
            # First Column Border Left
            formatStyle(c(1),`border-left` = '1px solid black') %>% 
            # Rest Alternative Bordering
            formatStyle(alt_vector,`border-right` = '1px solid black')

  })

}

shinyApp(ui, server)

Прикрепленный снимок отформатированной таблицы из пользовательского интерфейса.

A Snapshot from the UI generated from the code

...