Ich habe diesen Beispiel Datenrahmen:Benutzerdefinierte Ausgabe in Shiny
domain <- c('ebay.com','facebook.com','auto.com')
id <- c(21000, 23400, 26800)
cost <- c(0.82,0.40,0.57)
test_data <- data.frame(domain,id,cost)
Ich mag Mustertext erzeugen, basierend auf diesen Daten, ich den Text für die gesamten Daten machen kann diesen Code verwenden:
library(shiny)
server <- function(input, output) {
output$Variables <- renderUI({
# If missing input, return to avoid error later in function
choice <- colnames(test_data)[1:2]
selectInput("Variables1", label = "Choose",choices = choice,multiple = T,selectize = T)
})
output$text <- renderText({
res <- (paste('if every domain','= "',test_data$domain, '", id in (', test_data$id,'):','<br/>',
'  ' ,'name: {',"testing",'}' ,'<br/>',' ', '
value: ', test_data$cost,'<br/>', sep="", collapse = "
el"))
HTML(paste(res,'else :', '<br/>',' ','value: no_bid'))
})
}
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
uiOutput("Variables")
),
mainPanel(htmlOutput("text"))
)
)
shinyApp(ui = ui, server = server)
Ausgang ist:
if every domain= "ebay.com", id in (21000):
name: {testing}
value: 0.82
elif every domain= "facebook.com", id in (23400):
name: {testing}
value: 0.4
elif every domain= "auto.com", id in (26800):
name: {testing}
value: 0.57
else :
value: no_bid
jedoch i Benutzeroption Muster machen basierend auf der Spalte wählt er i geben wollen n das Dropdown (entweder Domäne, ID oder beides). Also, falls er wählt einfach „domain“ sollte die Ausgabe wie:
if every domain= "ebay.com":
name: {testing}
value: 0.82
elif every domain= "facebook.com":
name: {testing}
value: 0.4
elif every domain= "auto.com":
name: {testing}
value: 0.57
else :
value: no_bid
I möglich, eine erschöpfende Reihe von Mustern zu hart Code bin in der Lage, aber ich möchte etwas Dynamik, die auf Benutzereingaben reagiert. Jede Hilfe wird sehr geschätzt.