我正在尝试使用DT格式化输出。以下是获取数据框的代码
> MyData
Tab Classification_Level Month_considered Primary_family Secondary_family Metric_name Metric_Value
1 Level1 Brand family Apr-17 NP <NA> <NA> 34,585
2 Level1 Brand Subfamily Apr-17 PM <NA> <NA> 7,401
3 Level1 Brand Subfamily Apr-17 NP <NA> <NA> 34,596
4 Level1 Brand Subfamily Apr-17 MB NP <NA> <NA> 15,985
5 Level1 Brand Subfamily Apr-17 MB M <NA> <NA> 9,712
6 Level1 Brand Apr-17 KL <NA> <NA> 6,242
> sapply(MyData,class)
Tab Classification_Level Month_considered Primary_family Secondary_family
"factor" "factor" "factor" "factor" "factor"
Metric_name Metric_Value
"factor"
a <- reactive({
MyData %>%
filter(
Classification_Level == input$selected_class &
Primary_family == input$selected_product &
Metric_name == input$selected_metric
) %>%
mutate(`ATC_Count` = Metric_Value) %>%
mutate(`pct` = as.numeric(as.character(Metric_Value)) * 100) %>%
select(Month_considered, `pct`) %>%
group_by(Month_considered)
})
当我检查此data.frame的类时
List of 8
$ x :List of 5
..$ filter : chr "none"
..$ data :'data.frame': 11 obs. of 3 variables:
.. ..$ : chr [1:11] "1" "2" "3" "4" ...
.. ..$ Month_considered: Date[1:11], format: "2017-04-01" "2017-05-01" "2017-06-01" "2017-07-01" ...
.. ..$ pct : num [1:11] 33.4 34.8 36.6 36.6 34.6 ...
现在,当尝试格式化和突出显示列时,出现错误“数据”必须是二维的(例如数据框或矩阵)
```
abc<- reactive ({datatable(a()) %>% formatStyle(
'pct',
backgroundColor = styleEqual(c(0, 1), c('gray', 'yellow'))
)})
output$op1 <- renderDataTable({
DT::datatable(abc())
})
答案 0 :(得分:0)
如果data.table定义没有问题,则问题似乎是呈现部分。 “ renderDataTable”既有光泽也有DT包。您可以尝试DT :: renderDataTable吗?