R блестящий формат RenderDT указывает c ячейку в выводе таблицы - PullRequest
1 голос
/ 29 мая 2020

Я пытаюсь отформатировать ячейку SPECIFI C в таблице данных блестящей панели R (с использованием renderDT).

В пользовательском интерфейсе я использую следующую строку кода:

DTOutput('dt_vols')

Я также включаю эту строку в пользовательский интерфейс, поскольку я не хочу отображать имена столбцов (не уверен, имеет ли это отношение к проблеме)

tags$head(tags$style(type = "text/css", "#dt_vols th {display:none;}")),

В коде сервера я сначала создаю следующий реактивный 2x2 матрица (называемая dt_vols) - я упростил матрицу в примере

dt_vols <- reactive({

    mtx_vols <- matrix(1:4, nrow = 2, ncol = 2)

    return(mtx_vols)

  })

Затем я визуализирую таблицу DT следующим образом:

  output$dt_vols = renderDT(

    dt_vols(), options = list(pageLength = 4, dom = 't', autoWidth = FALSE), rownames= FALSE,   
    formatStyle(dt_vols(), columns = 1, border = '1px solid #ddd')

  )

Она работает, пока я не добавлю строку formatstyle . Я не уверен, как правильно составить эту строку и указать, чтобы она указывала на определенную ячейку c (например, row1, column2). Кажется, проблема с аргументом столбца. Если я запустил следующее, я получаю следующую ошибку:

Warning: Error in : $ operator is invalid for atomic vectors

1 Ответ

1 голос
/ 29 мая 2020

formatStyle ожидает в качестве входных данных объект таблицы, созданный из datatable() - вы передали матрицу, что привело к ошибке.

Пожалуйста, проверьте следующее:

library(shiny)
library(DT)

ui <- fluidPage(DTOutput('dt_vols'),
                tags$head(tags$style(type = "text/css", "#dt_vols th {display:none;}")))

server <- function(input, output, session) {
  dt_vols <- reactive({
    mtx_vols <- matrix(1:4, nrow = 2, ncol = 2)

    return(mtx_vols)

  })

  output$dt_vols = renderDT({
    myTable <- datatable(dt_vols(),
                         options = list(pageLength = 4, dom = 't', autoWidth = FALSE),
                         rownames = FALSE
    )

    formatStyle(myTable, columns = 1, border = '10px solid #ddd')
  })
}

shinyApp(ui, server)

Result

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