由网友(♀對ィ尔dе陪絆♂)分享简介:如何使用Formattable为反应表中的某些值着色?这里有一个可重复使用的示例:在我创建的反应结果表中,如果p值低于0.05,我希望将它们涂成红色。library(DT)library(shiny)library(shinydashboard)library(formattable)ui <- dashboar...![内存卡放在手机里显示未格式化是什么意思 放电脑上格式化了为什么放在手机里还是没反应](https://p.xsw88.cn/allimgs/daicuo/20230903/4439.png)
如何使用Formattable为反应表中的某些值着色?
这里有一个可重复使用的示例:在我创建的反应结果表中,如果p值低于0.05,我希望将它们涂成红色。
library(DT)
library(shiny)
library(shinydashboard)
library(formattable)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
selectizeInput("v.dependent", "", choices = names(mtcars),
selected = "mpg", multiple = FALSE),
selectizeInput("predictor", "", choices = names(mtcars),
selected = "disp",
multiple = TRUE)),
dashboardBody(
tabsetPanel(
tabPanel("test with mtcars",
box(formattableOutput("tab"))
)
)
)
)
server <- function(input, output) {
dep.var <- reactive({
out <- input$v.dependent
out
})
ind.var <- reactive({
out <- input$predictor
out
})
var.selected <- reactive({
out <- append(ind.var(), dep.var(), 0)
out
})
user.selection <- reactive({
mtcars[, names(mtcars) %in% var.selected()]
})
lmod <- reactive({
lm(as.formula(paste(input$v.dependent, "~", paste(input$predictor, collapse = "+"))), data = user.selection())
})
output$tab <- renderFormattable({
tmp <- summary(lmod())$coefficients
colnames(tmp) <- c("Coefficients", "SD", "t statistic", "Pvalue")
tmp <- signif(x = tmp, digits = 3)
tmp <- formattable(tmp, list(Pvalue = formatter("span",
style = x ~ style(color = ifelse(x < 0.05, style(color = "red", "black")))
)))
})
}
shinyApp(ui, server)
![内存卡放在手机里显示未格式化是什么意思 放电脑上格式化了为什么放在手机里还是没反应](https://p.xsw88.cn/allimgs/daicuo/20230903/4439.png)
我知道如何处理"静态"表,但当我尝试使用此代码时,出现错误:
Warning: Error in formatC: 'format' must be one of {"f","e","E","g","G", "fg", "s"}
知道如何解决它吗?
推荐答案
您使用的是formattable.data.table
的语法,但在您的示例中,tmp
是一个行为不同的矩阵。您似乎希望它是一个数据帧,这样您就可以自己进行强制转换。此外,您似乎在ifelse
中设置颜色时遇到了一些问题。这似乎做了您想做的事
output$tab <- renderFormattable({
tmp <- summary(lmod())$coefficients
colnames(tmp) <- c("Coefficients", "SD", "t statistic", "Pvalue")
tmp <- signif(x = tmp, digits = 3)
tmp <- as.data.frame(tmp)
tmp <- formattable(tmp, list(
Pvalue = formatter("span", style = x ~ style(color = ifelse(x < 0.05, "red", "black"))))
)
})
相关推荐
最新文章