You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Shiny中DT::dataTable的formatStyle()样式修改不生效?

问题原因

  1. formatStyle的columns参数设为NULL无法正确匹配到需要应用样式的列:你转换后的宽表第一列为Columns(存储字段名),剩余列才是存储Yes/No需要加粗的目标列,需要明确指定目标列范围。
  2. 未明确指定styleEqual的命名空间:如果当前环境没有单独导入DT包下的styleEqual函数,会导致样式规则失效,建议加上DT::前缀。
  3. 代码存在语法错误: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:15:03