Ich habe eine Daten.Tabelle, die ich mit DT anzeigen. In zwei Spalten zeige ich Prozentsätze an und möchte Hintergrundbalken anzeigen. Die Anzahl der Spalten kann sich jedoch abhängig von der ausgewählten Tabelle ändern. Es wird entweder eine oder zwei Prozentspalten geben.DT Datentabelle Anzeige Fehler
Hier sind einige Dummy-Daten und mein Ansatz bisher, die Grep erfolglos verwendet.
a <- c(45, 143, 123, 120, 118, 109, 94, 81)
b <- c(54, 132, 119, 113, 108, 104, 99, 91)
a2 <- round(a/sum(a)*100,2)
b2 <- round(b/sum(b)*100,2)
dt <- data.table("Age" = c("-20", "20-30", "30-40", "40-50",
"50-60", "60-70", "70-80", "80+"),
"Group A" = a,
"Group A %" = a2,
"Group B" = b,
"Group B %" = b2)
if(sample(c(0,1), 1)==1) x <- dt else x <- dt[ ,c(1:3)]
DT::datatable(x,
rownames = FALSE,
extensions = c('FixedColumns'),
class = 'cell-border stripe',
options = list(dom = 't',
pageLength = nrow(x),
columnDefs = list(list(className = 'dt-center', targets = 0:(ncol(x)-1)))
)
) %>%
formatStyle(
grep("%", colnames(x), value=TRUE),
background = styleColorBar(x[, .SD, .SDcols=grep("%", colnames(x), value=TRUE)], 'steelblue'),
backgroundSize = '50% 50%',
backgroundRepeat = 'no-repeat',
backgroundPosition = 'right')
Leider schaffen diese den Fehler:
*Error in FUN(X[[i]], ...) : only defined on a data frame with all numeric variables*
So wie kann ich dynamisch die Spalten auswählen, die Balken angezeigt werden?
Jede Hilfe sehr geschätzt.
Perfekt und ohne große Rewrite zurückkehren wird. Vielen Dank. –