使用格式 table 格式化闪亮数据 table 中的文本输出——似乎已停止工作
Formatting text output in shiny data table using formattable--seems to have stopped working
我有一个数据 table 使用格式化示例 here
可以正常工作
代码似乎已经停止工作,而不是 table 格式为正数绿色,负数红色,零为黑色,我得到一个空白输出。
对于可重现的例子,我使用 mtcars 作为一个简单的例子,其他代码“开销”最少。
最终目标是格式化 table 以便 table 中的数字根据上面的颜色显示。
感谢您的帮助!
library(shiny)
library(formattable)
library(tidyverse)
# Define UI
ui <- fluidPage(
# Application title
titlePanel("example"),
mainPanel(
dataTableOutput("Table")
)
)
# Define server
server <- function(input, output) {
# Create formattable function for tables
sign_formatter <- formatter("span",
style = x ~ style(
color = ifelse(x > 0, "green",
ifelse(x < 0, "red", "black")),
font.weight = "bold"
))
# Identify numeric columns of table
numeric_cols <- colnames(mtcars[sapply(mtcars, is.numeric)])
# Render the table
output$Table <- renderDataTable({
table_to_return <- as.datatable(
formattable(
mtcars,
list(
area(, numeric_cols) ~ sign_formatter
)
) # formattable close
) # datatable close
}) # Render close
}
# Run the application
shinyApp(ui = ui, server = server)
可能是因为 dataTableOutput
没有提到这个包。将其更改为 DT::dataTableOutput
和 DT::renderDataTable
library(shiny)
library(formattable)
library(dplyr)
# Define UI
ui <- fluidPage(
# Application title
titlePanel("example"),
mainPanel(
DT::dataTableOutput("Table")
)
)
# Define server
server <- function(input, output) {
# Create formattable function for tables
sign_formatter <- formatter("span",
style = x ~ style(
color = ifelse(x > 0, "green",
ifelse(x < 0, "red", "black")),
font.weight = "bold"
))
# Identify numeric columns of table
numeric_cols <- colnames(mtcars[sapply(mtcars, is.numeric)])
# Render the table
output$Table <- DT::renderDataTable({
table_to_return <-
as.datatable(
formattable(
mtcars,
list(
area(, numeric_cols) ~ sign_formatter
)
) # formattable close
) # datatable close
}) # Render close
}
# Run the application
shinyApp(ui = ui, server = server)
-输出
我有一个数据 table 使用格式化示例 here
可以正常工作代码似乎已经停止工作,而不是 table 格式为正数绿色,负数红色,零为黑色,我得到一个空白输出。
对于可重现的例子,我使用 mtcars 作为一个简单的例子,其他代码“开销”最少。
最终目标是格式化 table 以便 table 中的数字根据上面的颜色显示。
感谢您的帮助!
library(shiny)
library(formattable)
library(tidyverse)
# Define UI
ui <- fluidPage(
# Application title
titlePanel("example"),
mainPanel(
dataTableOutput("Table")
)
)
# Define server
server <- function(input, output) {
# Create formattable function for tables
sign_formatter <- formatter("span",
style = x ~ style(
color = ifelse(x > 0, "green",
ifelse(x < 0, "red", "black")),
font.weight = "bold"
))
# Identify numeric columns of table
numeric_cols <- colnames(mtcars[sapply(mtcars, is.numeric)])
# Render the table
output$Table <- renderDataTable({
table_to_return <- as.datatable(
formattable(
mtcars,
list(
area(, numeric_cols) ~ sign_formatter
)
) # formattable close
) # datatable close
}) # Render close
}
# Run the application
shinyApp(ui = ui, server = server)
可能是因为 dataTableOutput
没有提到这个包。将其更改为 DT::dataTableOutput
和 DT::renderDataTable
library(shiny)
library(formattable)
library(dplyr)
# Define UI
ui <- fluidPage(
# Application title
titlePanel("example"),
mainPanel(
DT::dataTableOutput("Table")
)
)
# Define server
server <- function(input, output) {
# Create formattable function for tables
sign_formatter <- formatter("span",
style = x ~ style(
color = ifelse(x > 0, "green",
ifelse(x < 0, "red", "black")),
font.weight = "bold"
))
# Identify numeric columns of table
numeric_cols <- colnames(mtcars[sapply(mtcars, is.numeric)])
# Render the table
output$Table <- DT::renderDataTable({
table_to_return <-
as.datatable(
formattable(
mtcars,
list(
area(, numeric_cols) ~ sign_formatter
)
) # formattable close
) # datatable close
}) # Render close
}
# Run the application
shinyApp(ui = ui, server = server)
-输出