可以结合DT,格式化和闪亮吗?

MLE*_*LEN 4 r shiny dt formattable

Formattable 有一些简单的格式化表格选项,例如:

library(shiny)
library(DT)
library(formattable)

  df <- formattable(iris, lapply(1:4, function(col){

    area(col = col) ~ color_tile("red", "green")
Run Code Online (Sandbox Code Playgroud)

这以后可以coverted到DT数据表

df <- as.datatable(df)
Run Code Online (Sandbox Code Playgroud)

对我来说,在RStudion的Viewer中查看是完美的.但是,我想以某种方式将其部署为Shiny应用程序.完整代码:

library(DT)
library(shiny)

ui <- fluidPage(
  DT::dataTableOutput("table1"))


server <- function(input, output){

  df <- formattable(iris, lapply(1:4, function(col){

    area(col = col) ~ color_tile("red", "green")

  }))

  df <- as.datatable(df)

  output$table1 <- DT::renderDataTable(DT::datatable(df))

}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

这不起作用,有什么工作吗?我喜欢条件格式formattable,但也想使用一些DT提供的选项,例如过滤,搜索,colvis等.

要将它部署为formattable有一个线程:

如何在闪亮的仪表板中使用R包"formattable"?

Flo*_*ian 7

是的,似乎也有可能,如这里也提到的那样.以下是有关如何实现该目标的示例代码:

library(shiny)
library(data.table)
library(formattable)

ui <- fluidPage(
  selectInput("input1","Species: ", choices = c("setosa", "versicolor", "virginica")),
  DT::dataTableOutput("table1"))

# make a data.table of the iris dataset. 
df <- iris

server <- function(input, output){

  output$table1 <- DT::renderDataTable( {

    my_df <- df[df$Species==input$input1,]

    return(as.datatable(formattable(my_df, lapply(1:4, function(col){area(col = col) ~ color_tile("red", "green")}))))
  }
  )

}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)