2017-05-23 4 views
0

Ich erzeuge eine Liste von Highcharts Objekte und Registerkarten. Dann möchte ich es in eine HTML-Seite rendern.Rendern einer Liste von Highcharts in Rmarkdown

Ich kann nicht herausfinden, wie man es in einer einfachen Schleife macht.

Wenn ich es eins nach dem anderen mache, funktioniert es, aber nicht in einem für. Hier

ein Beispiel:

--- 
output: 
    html_document 
--- 

``` {r, echo=FALSE, results='asis'} 
library(highcharter) 

out<-list(gr1=highcharts_demo(),gr2=highcharts_demo()) 

cat(" 

Column {.tabset} 
----------------------------------------------------------------------- 

") 

cat(" 

###A1 

" 
) 
out[[1]] 

cat(" 

###A2 

" 
) 
out[[2]] 

for (i in c(1,2)) 
{ 
    cat(paste0(" 

###","B",i," 

" 
)) 
    out[[i]] 
} 
``` 

ich es in RStudio mit knitr kompilieren.

Und nur die ersten beiden Registerkarten Graphen haben, nicht die letzten beide ...

Ich habe versucht, expliziten Druck oder Show zu bieten, einen \ n in der Schleife hinzuzufügen. Kein Glück.

Irgendeine Idee? Vielen dank für Deine Hilfe.

+0

Diese Frage beantwortet werden würde in https://stackoverflow.com/questions/35567124/how-to-print-htmlwidgets-to-html-result-inside-a-function und https://stackoverflow.com/questions/30509866/for-loop-over-dygraph-does-not-work-in-r. Zusammenfassend: Sie müssen die Ergebnisse in eine "tagList" schreiben. – user2554330

Antwort

0

Um meinen Kommentar zu erweitern: Sie können jedes Element [[i]] in eine TagList einfügen und es ausdrucken. Ihre Schleife

for (i in c(1,2)) 
{ 
    cat(paste0(" 

###","B",i," 

" 
)) 
    print(htmltools::tagList(out[[i]])) 
} 
+0

toll funktioniert wie ein Charme. Ich verbrachte viele Stunden mit Recherchen, konnte aber mein Problem nicht mit den Referenzen verknüpfen, die Sie erwähnt haben. Danke vielmals. – xloki

+0

Es gibt jedoch ein Problem: Wenn ich die "direkten" ersten Drucke (out [[1]] und out [[2]] Linien) und nur die Schleife mit der Tagliste lassen, funktioniert es nicht mehr. – xloki

+0

Wahrscheinlich lösen die ersten das Einschließen von etwas aus und die tagListe nicht. Mach das erste manuell, den Rest in einer Schleife. – user2554330

Verwandte Themen