Ich verwende Formattable, um eine bedingte Farbformatierung in einer Tabelle in einer glänzenden App zu implementieren. Nehmen wir zum Beispiel an, ich möchte Zellen unter dem Wert 2, grün, über 5, rot und zwischen 2 und 5, orange färben. Ich würde meine Formatierer Funktion wie folgt schreiben:Dynamische Bedingungen in Formattabelle
formatter(
"span",
style = x ~ style(
color = 'white',
'background-color' =
ifelse(x > 5, "red",
ifelse(x > 2 & x <= 5, "orange",
"green"))))
Aber was ich wirklich tun wollen ist, diese Farbe Schwellenwerte haben, das heißt, 2 und 5, in der Lage sein vom Anwender geändert werden.
Sagen wir also user_low und user_high vom Benutzer definiert werden:
col_format <-
formatter(
"span",
style = x ~ style(
color = 'white',
'background-color' =
ifelse(x > input$user_high, "red",
ifelse(x > input$user_low & x <= input$user_high, "orange",
"green"))))
Wenn ich versuche nun diese Formatierer in formatierbare in meinem glänzenden App zu füttern:
formattable(mtcars, col_format)
ich folgende Fehlermeldung erhalten :
'col_format' of mode 'function' was not found
Scheinbar Eingabe $ user_low und Eingabe $ user_high werden nicht ausgewertet und sind ins Tead als Zeichenfolgen im Formatierer behandelt. Ich habe versucht, eval(), eval (parse()), vergeblich.
Irgendwelche Ideen?
Nicht sicher 'formattable' aber dies ist wirklich einfach mit' tableHTML'. Überprüfen Sie [hier] (https://cran.r-project.org/web/packages/tableHTML/vignettes/conditional_column.html). Es funktioniert auch mit glänzend. – LyzandeR
Nizza @ LyzandeR. Ich habe TableHTML nicht gesehen, definitiv ein gutes Backup. Formattable sieht ein bisschen schöner aus, würde es gerne in diesem Rahmen machen, wenn möglich – quantumcatz