Ich möchte Sparklines in einem glänzenden DT enthalten. Es funktioniert gut im RStudio-Viewer, aber in Shiny werden die Sparklines nicht gerendert. Hier ist ein minimales Beispiel.Render Datatable mit Sparklines in Shiny
# dependencies
require(sparkline)
require(DT)
require(shiny)
# create data with sparklines
spark_data <- data.frame(
id = c('spark1', 'spark2'),
spark = c(
spk_chr(values = 1:3, elementId = 'spark1'),
spk_chr(values = 3:1, elementId = 'spark2')
)
)
# render in RStudio viewer (this works)
tbl <- datatable(spark_data, escape = FALSE)
spk_add_deps(tbl)
# render in Shiny (no sparklines rendered in DT)
ui <- fluidPage(
sparklineOutput("test_spark"),
dataTableOutput("tbl")
)
server <- function(input, output) {
# sparkline outside DT (works fine) - also ensures sparkline dependencies are attached
output$test_spark <- renderSparkline(sparkline(1:3))
# sparkline inside DT (does not render)
output$tbl <- renderDataTable(
expr = spark_data,
escape = FALSE
)
}
shinyApp(ui = ui, server = server)
Siehe diesen [link] (https://leonawicz.github.io/HtmlWidgetExamples/ex_dt_sparkline.html) für Sparklines in glänzenden Datentabelle zu bekommen. – SBista
Danke, ja, ich habe einige Zeit auf dieser Seite verbracht. Es deckt meinen 1. Fall ab (d. H. Render in RStudio Viewer), mit dem ich kein Problem habe. Der Link deckt jedoch nicht den zweiten Fall ab (warum er in Shiny nicht gerendert wird). Ich vermute, dass das Problem mit den Abhängigkeiten zusammenhängen könnte. Es ist mir nicht klar, wie man 'spk_add_deps' in einer glänzenden App benutzt, daher mein Trick, eine Dummy-Sparkline außerhalb des DT zu rendern, um die Abhängigkeiten anzuhängen. – Grant
Ich Reposting eine Version dieser Frage hier https://stackoverflow.com/questions/47041415/include-sparkline-htmlwidget-in-datatable-celles-in-ashiny-app-without-resortin, weil es scheint, die Lösung sollte keine manuelle Eingabe des JavaScript erfordern. Wenn es im Viewer funktioniert, warum nicht in Shiny? –