Я пытался разработать веб-приложение R Shiny, используя DT для отображения данных. Мне нужно использовать входные данные, чтобы заполнить опцию поиска по данным, поскольку я фильтрую и упорядочиваю возможные условия поиска по term-freq.
Мои данные на французском, поэтому они содержат акценты с кодировкой latin1 (я пробовал кодировку UTF8, но рендеринг становится грязным).
Я сравнил поведение renderDataTable в вычислениях на стороне сервера и на стороне клиента. Клиентская сторона работает хорошо, но данные должны обрабатываться таким образом. Серверная часть не находит соответствия для акцентированных терминов (французские акценты).
Вот этот репекс
library(shiny)
library(DT)
data=data.frame(index=1:6,nom=c("hého","bonjour","enchanté","merci","où ça ?","à qui s'adresse-t-il ?"),stringsAsFactors = F)
ui <- fluidPage(
title = 'Use the DT package in shiny',
selectizeInput(inputId = 'tag',label="mots pour filtrer",
choices=strsplit(data$nom,split = " ")%>%unlist%>%unique),
h3('A Table Using Client-side Processing'),
fluidRow(
DT::dataTableOutput('tbl_a')
),
h3('A Table Using Server-side Processing'),
fluidRow(
DT::dataTableOutput('tbl_b')
)
)
server <- function(input, output, session) {
output$tbl_a = DT::renderDataTable(datatable(data,options=list(search=list(search=input$tag))), server = FALSE)
output$tbl_b = DT::renderDataTable(datatable(data,options=list(search=list(search=input$tag))))
}
shinyApp(ui,server)
Обработка на стороне клиента возвращает желаемый результат ... Но я бы хотел добиться этого с помощью обработки на стороне сервера.
Вот результат вызова xfun::session_info('DT')
R version 3.5.3 (2019-03-11)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17134), RStudio 1.2.1330
Locale:
LC_COLLATE=French_France.1252
LC_CTYPE=French_France.1252
LC_MONETARY=French_France.1252
LC_NUMERIC=C
LC_TIME=French_France.1252
Package version:
assertthat_0.2.1
BH_1.69.0.1
cli_1.1.0
colorspace_1.4.1
crayon_1.3.4
crosstalk_1.0.0
digest_0.6.18
DT_0.5
fansi_0.4.0
ggplot2_3.1.0
glue_1.3.1
graphics_3.5.3
grDevices_3.5.3
grid_3.5.3
gtable_0.3.0
htmltools_0.3.6
htmlwidgets_1.3
httpuv_1.5.0
jsonlite_1.6
labeling_0.3
later_0.8.0
lattice_0.20.38
lazyeval_0.2.2
magrittr_1.5
MASS_7.3.51.1
Matrix_1.2.15
methods_3.5.3
mgcv_1.8.27
mime_0.6
munsell_0.5.0
nlme_3.1.137
pillar_1.3.1
pkgconfig_2.0.2
plyr_1.8.4
promises_1.0.1
R6_2.4.0
RColorBrewer_1.1.2
Rcpp_1.0.1
reshape2_1.4.3
rlang_0.3.2
scales_1.0.0
shiny_1.2.0
sourcetools_0.1.7
splines_3.5.3
stats_3.5.3
stringi_1.4.3
stringr_1.4.0
tibble_2.1.1
tools_3.5.3
utf8_1.1.4
utils_3.5.3
viridisLite_0.3.0
withr_2.1.2
xtable_1.8.3
yaml_2.2.0