2016-06-22 13 views
2

Ich möchte einige TileMaker Elemente in meinen glänzenden Anwendungen hinzufügen, um es zu einem besseren Dashboard zu machen (aber ich habe shinydashboard Struktur nicht verwendet). Siehe die server.R und ui.R unten minimal Beispiel:R - Verwenden Sie TileMaker in Shiny Apps

Server.R

library(shiny) 
library(TileMaker) 
shinyServer(function(input, output) { 

Tilemaker<-renderPlot({ 

    Button1 <- ButtonMaker(Color = 2,Value = 3.57,Subtitle = "Times apple eaten") 
    Button2 <- ButtonMaker(Color = 3,Value = 13.7,Subtitle = "Nutritional value") 
    Button3 <- ButtonMaker(Color = 4,Value = 1,Subtitle = "Yumminess factor") 
    Button4 <- ButtonMaker(Color = 5,Size=1,Value = 5,Subtitle = "Inconsistencies") 
    Div1 <- DivMaker(Title = "Quantativity factors",Buttons = paste(Button1,Button2)) 
    Div2 <- DivMaker(Title = "Implementation procedures",Buttons = paste(Button3,Button4)) 
    TileMaker(MainTitle = "Hello",Divs = paste(Div1,Div2), FileName = "123.html") 
    browseURL("123.html") 
}) 
}) 

ui.R

library(shiny) 
shinyUI(fluidPage(
mainPanel(
     navlistPanel(
    tabPanel("Tilemaker",h1("Tilemaker"),plotOutput(Tilemaker)) 
    ) 
) 
) 
) 

Ich habe für eine Weile gesucht, aber keine verwandte Diskussion und ich habe versucht, beide renderplot und renderimage aber beide haben nicht funktioniert. Ist TilmeMaker ein anderer Render-Typ oder kann er nicht in einer glänzenden App verwendet werden? Jede Beratung wird geschätzt. Vielen Dank.

Antwort

1

Sie benötigen renderUI (wenn Sie Fliesen auf Server-Seite erstellt werden soll) und nicht speichern müssen (wie gesagt in Hilfe

„Wenn Sie möchten, dass nur HTML-Code (geeignet für in einem Armaturenbrett einsetzen oder ein anderes Dokument, können Sie die Divs“verwenden

)

Beispiel

library(shiny) 
library(TileMaker) 
server=shinyServer(function(input, output) { 

    output$Tilemaker<-renderUI({ 

    Button1 <- ButtonMaker(Color = 2,Value = 3.57,Subtitle = "Times apple eaten") 
    Button2 <- ButtonMaker(Color = 3,Value = 13.7,Subtitle = "Nutritional value") 
    Button3 <- ButtonMaker(Color = 4,Value = 1,Subtitle = "Yumminess factor") 
    Button4 <- ButtonMaker(Color = 5,Size=1,Value = 5,Subtitle = "Inconsistencies") 
    Div1 <- DivMaker(Title = "Quantativity factors",Buttons = paste(Button1,Button2)) 
    Div2 <- DivMaker(Title = "Implementation procedures",Buttons = paste(Button3,Button4)) 
    return(list(h1("Hello"),HTML(Div1,Div2))) 
    }) 
}) 

ui=shinyUI(fluidPage(
    mainPanel(
    navlistPanel(
     tabPanel("Tilemaker",h1("Tilemaker"),uiOutput("Tilemaker")) 
    ) 
) 
) 
) 

shinyApp(ui,server) 
+0

Der obige Code löste das Problem perfekt und jetzt sind Tilemaker und shiny stark integriert. – Samoth