为什么Shiny中DT::dataTable的formatStyle()样式修改不生效?
问题原因
formatStyle的columns参数设为NULL无法正确匹配到需要应用样式的列:你转换后的宽表第一列为Columns(存储字段名),剩余列才是存储Yes/No需要加粗的目标列,需要明确指定目标列范围。- 未明确指定
styleEqual的命名空间:如果当前环境没有单独导入DT包下的styleEqual函数,会导致样式规则失效,建议加上DT::前缀。 - 代码存在语法错误:
pivot_wider行末尾的管道符仅写了%,缺失>%,会直接导致代码运行报错。
修正代码
只需替换output$data对应的代码段即可:
output$data <- DT::renderDataTable({ req(input$var_2) table<-categories() %>% filter(var_2 %in% input$var_2) %>% select(var_2, var_3)%>% mutate(result="Yes") %>% tidyr::pivot_wider(names_from = var_2, values_from = result, values_fill = "No")%>% rename(Columns=var_3) table_1<-DT::datatable(table, filter= 'top',options = list(order=list(0,'asc'), dom='t', pageLength= 100, autoWidth = TRUE),rownames = FALSE) table_2<-DT::formatStyle(table_1, columns = 2:ncol(table), fontWeight = DT::styleEqual(c('No', 'Yes'), c('normal', 'bold'))) return(table_2) })
修改后运行即可实现值为Yes的内容加粗的效果。
内容的提问来源于stack exchange,提问作者AFS
相关产品推荐
相关产品推荐

