要求/问题:需要在Shiny App UI中使用与R环境中相同的格式的所有列。
使用as.datatable函数将格式表的输出转换为数据表后,尽管我能够过滤内容,但是所有字段均在使用Shinyapp呈现时属于字符类。含义为700> 6000、9> 10等(只是因为未将其视为数字类)
用于测试的示例代码:
#libraries
library(formattable)
library(shiny)
#upto 2 digits issue cannot be seen as 9.1 >8.1 etc even in character format, hence increasing the numbers by multiplying it to another column.
iris$Sepal.Width <- iris$Sepal.Width*iris$Petal.Length
#creating UI
ui <- fluidPage(
DT::dataTableOutput("table1"))
#creating server
server <- function(input, output){
output$table1 <- DT::renderDataTable(
as.datatable(formattable(iris)))
}
#calling the server
shinyApp(ui, server)
观察:当尝试按降序对Sepal.Width列进行排序时,9.x将位于顶部,而在ShinyUI中应为25.46。
注意:单击ShinyApp中的Show 100 filter(显示100个过滤器),然后使用sort来更好地理解问题
在R中完成所有操作后,所有功能均正常运行,但在ShinyApp中失败。需要在ShinyApp中获得与R环境中相同的格式。