Die Eingaben werden im Format "iris $ Petal.Width - iris $ Species" angezeigt. Bei ausgewählten Eingaben werden die zu teilenden Daten und die Iris $ Petal.Width allein zum Filtern der gesamten Daten verwendet Daten. Beispiel: ausgewählte Werte sind wie im Bild. glänzend mit selectizeInput zum Aufbau der dynamischen Datenausgabe
Versuchen Sie, Daten wie dplyr :: Filter (Iris, Iris% $ Petal.Width in% c ('0,2', '0,3', '0,1', '0,6', '1,4')) Wie um das c ('0.2', '0.3', '0.1', '0.6', '1.4') dynamisch zu bilden.
Dieses Beispiel zum besseren Verständnis genommen, tatsächlich sind die Eingänge in A001 - Description1, A002 - Description2 Format. Müssen Sie A001, A002 zu c ('A001', 'A002') machen.
mit folgenden Code versucht:
## run in interactive R sessions
if (interactive()) {
ui <- fluidPage(
selectizeInput('ipdesc', label='Selector',
choices = as.list(c(unique(paste(iris$Petal.Width,iris$Species,sep = " - ")))),
multiple = TRUE,
options = list(maxItems = 5)
),
p("Select Codes (Max 5), then press 'Go'"),
actionButton("go", label = "Go"),
tableOutput("selected")
)
server <- function(input, output) {
#
output$selected <- renderTable({
filterdata()
})
filterdata <- eventReactive(input$go,{
x=c()
cnt = length(input$ipdesc)
for (i in 1:cnt){
if (i != cnt) {
x[i] = cat(sapply(strsplit(input$ipdesc[i], " - "), "[", 1),",")
}
else
{x[i] = cat(x[1],sapply(strsplit(input$ipdesc[i], " - "), "[", 1))}
} })
#
}
shinyApp(ui, server)
}
Dank Steffi LaZerte, kommt Ihr Ansatz sehr nahe, mein Problem zu lösen. Die Eingänge sind im Format "A00 - Description". Daher gibt es beim Ausführen eine Fehlermeldung wie "Fehler: Operationen sind nur für numerische, logische oder komplexe Typen möglich". Irgendein Vorschlag bitte. – SPS
Sie sollten das Argument 'convert = TRUE' weglassen. Dieses Argument sagt 'separe()', um das Ergebnis in numerisch zu konvertieren (im obigen Fall). Aber in Ihrem Fall werden Sie mit 'A00' und 'Description' enden, von denen keine numerisch (noch logisch oder komplex) sind, was vermutlich der Grund ist, warum Sie diesen Fehler erhalten. –