Ich möchte eine glänzende App schreiben, die die Parameter einer nichtlinearen Fit-Funktion berechnen sollte. Um ein nls zu berechnen, benötigt man Startwerte für die verwendeten Parameter. Idealerweise sollte der Benutzer in der Lage sein, eine Formel in einen textInput zu schreiben und die Startwerte für die verwendeten Parameter in einem zusätzlichen textInput wie a*x^2
und a=1
zu setzen.Wie kann ich eine Zeichenfolge von textInput an eine Funktion (wie nls) in glänzend übergeben R
Jetzt habe ich eine harte Zeit, um den Eintrag des zweiten textInput an das start
Argument von nls()
übergeben.
start=input$set_start
nicht funktioniert, es heißt „ungültig erstes Argument“ Ich habe versucht, über noquote()
die Zitate loszuwerden und as.name()
und versuchte, den Wert mit get()
zu bekommen, aber es sagt, dass es „Objekt‚a = 1‘nicht gefunden“ Hat jemand eine Lösung für diese Aufgabe?
Das folgende Beispiel ist nicht in diesem Setup arbeiten, aber wenn Sie den Startwert direkt und gibt a=1
statt start=input$set_start
gesetzt funktioniert es
library(shiny)
ui <- fluidPage(
mainPanel(
textInput("set_start","set startparameters",value = "a=1"),
verbatimTextOutput("nls_summary")
)
)
server <- function(input, output) {
df<-data.frame(y=c(1,3,8,17,26),x=c(1,2,3,4,5))
output$nls_summary<-renderPrint({
nls(formula="y~a*x^2",
data=df,
start=input$set_start)
})
}
shinyApp(ui = ui, server = server)
Thank you! :) das funktioniert perfekt. Meine Absicht war es, die App flexibler zu halten, so dass der Benutzer beliebig viele Parameter eingeben kann, solange er einen Startwert festlegt. Die Alternative wäre ein flexibles uiOutput, das für jeden verwendeten Parameter einen textInput generiert, um die Startwerte festzulegen. Aber ich denke diese Lösung ist einfacher;) –