Ich versuche, das DT gemäß den Werten aus der vorherigen Tabelle zu formatieren. Zum Beispiel möchte ich anzeigen, wenn etwas erhöht, verringert oder gleich geblieben ist. Ich könnte dies mit Kable tun, aber konnte nicht den nächsten Schritt, wo ich eine Zelle Clik und zeigen Sie alle Daten zu diesem Wert in einem anderen DT.Formatieren Sie die Farbe der glänzenden Datentabelle (DT) entsprechend den Werten in einem anderen Datensatz
library(shiny)
library(DT)
library(dplyr)
ui <- fluidPage(
mainPanel(
dataTableOutput("iris_head")
)
)
server <- function(input, output) {
#df_data <- iris
df_data <- head(iris[-5])
# Just a dataset describing if iris has changed over a month
# If reference data is of the same size as the original data (df_data).
# If reference data is negative I want the cell in the df_data to be green;
# If zero blue and if positive then green.
# I can make changes with ranges within the current range, can we get the color encoding from another table?
# set the seed
set.seed(42)
reference_df <- (sapply(df_data, function(x) jitter(x, amount = 2)) - df_data) %>%
round(. , digits = 0)
print(reference_df)
output$iris_head <- renderDataTable(datatable(df_data, selection = "single")%>%
formatStyle('Sepal.Width',
color = styleInterval(c(3.4, 3.8), c('green', 'blue', 'red')),
backgroundColor = styleInterval(3.4, c('gray', 'yellow'))) %>%
formatString('Sepal.Width', suffix = '<font color="red">⇑ </font>'))
}
shinyApp(ui = ui, server = server)
Die reference_df
in diesem Fall:
Sepal.Length Sepal.Width Petal.Length Petal.Width
2 1 2 0
2 -1 -1 0
-1 1 0 2
1 1 2 -1
1 0 2 2
0 1 -2 2
Die erforderliche Ausgabe wird in der Figur gezeigt, wo ich will auch den Text färben und wenn möglich den Hintergrund entsprechend den Werten in reference_df.
Dank färben möchten! für eine sehr gut erklärte Antwort. Etwas merkwürdig, dass jemand diese Frage ohne Kommentar wegen der Tatsache, dass er eine so gute Antwort erhalten hat, abgelehnt hat. – discipulus