Это Q в примере рендеринга столбца (4.4), приведенном по этой ссылке. http://rstudio.github.io/DT/options.html
Я реализовал пример кода, описанный выше, для сокращения строк символов, длина которых превышает 100 символов, с использованием первых 100 символов плюс многоточие (…), а полная строка символов отображается в виде всплывающей подсказки при наведении курсора мыши на ячейку. Это работает хорошо, если в столбце с настраиваемым рендерингом есть полный текст. Однако, когда он встречает пустую ячейку, таблица не отображается, а в блестящем браузере отображается «Обработка ...». При отключении этого настраиваемого рендеринга я могу отображать таблицу с пустыми полями, как и ожидалось. У кого-нибудь была подобная проблема, какие-либо предложения по ее преодолению?
Ниже приведен мой код рендеринга настраиваемого столбца.
output$PM_output <- DT::renderDataTable(
expr = DT::datatable(PubmedOutput(PubmedSearch()),
class = 'cell-border stripe compact hover',
escape = F, selection = 'multiple',
options = list(
initComplete = JS("function(settings, json) {",
"$(this.api().table().header()).css({
'background-color': '#303030',
'color': '#FFFF00'});","}"),
autoWidth = T,
LengthMenu = c(5, 30, 50),
columnDefs = list(list(
targets = 6,
render = JS(
"function(data, type, row, meta) {",
"return type === 'display' && data.length > 100 ?",
"'<span title=\"' + data + '\">' +
data.substr(0, 100) + '...</span>' : data;", "}"))),
columnDefs = list(list(
targets = c(1:8),
className = 'dt-center')),
pageLength = 1, server = T)))
Код, который генерирует столбец 6, для которого я передал настраиваемый рендеринг.
PM.ID <- c("26391251","26372702","26372699","26371045") # does not output table
fetch.pubmed <- entrez_fetch(db = "pubmed", id = PM.ID,
rettype = "xml", parsed = T)
abstracts = xpathApply(fetch.pubmed, '//PubmedArticle//Article', function(x) xmlValue(xmlChildren(x)$Abstract))
abstracts # ID 26372702, 26372699 has no abstract. and returns NA
Любые входы и предложения. P.S: Есть ли лучший способ отображения данных, кроме многоточия / всплывающей подсказки? код слишком велик, чтобы вставить его все, поэтому я выбрал только те части, где я заметил проблему. Я надеюсь, что это помогает.