有一个解决方案可以使用NA
创建的表格中显示Inf
或options(htmlwidgets.TOJSON_ARGS = list(na = 'string'))
值,如here所述。
问题是htmlwidgets.TOJSON_ARGS
也影响了情节。以下是问题的简单示例。
library(shiny)
library(DT)
library(plotly)
options(htmlwidgets.TOJSON_ARGS = list(na = 'string'))
dat <- data.frame(x = c(1, NA, NA, 4, 5), y = 1:5)
shinyApp(
ui = fluidPage(
plotlyOutput("plot"),
DTOutput('tbl')
),
server = function(input, output) {
output$plot <- renderPlotly({
plot_ly(data = dat, x =~x, y =~y)
})
output$tbl = renderDataTable(dat)
}
)
该表正确显示了NA
个值但该图不起作用并显示Error: formal argument "na" matched by multiple actual arguments
是否可以将htmlwidgets.TOJSON_ARGS
设置为仅影响表格而不影响情节?或者使用什么样的正确参数来避免错误?
上面的代码是非常基本的示例,该解决方案应该与用户与数据交互时动态创建的多个表和图一起使用。因此,删除options(htmlwidgets.TOJSON_ARGS = list(na = 'string'))
并将数据转换为字符串不是一个选项,因为它会破坏表的排序功能。不要在表的columnDefs
参数中使用自定义JS代码来显示NA
,因为它对于大型数据集来说效率低下。
非常感谢任何推荐或评论。