我想寫一個閃亮的應用程序,它應該計算非線性擬合函數的參數。爲了計算nls,需要使用參數的起始值。因此,理想的情況是,用戶應該能夠在一個textInput中編寫公式,並在額外的textInput中設置所用參數的起始值,如a*x^2
和a=1
。如何從textInput傳遞字符串到閃亮的R中的函數(如nls)
現在我很難通過第二個textInput的輸入start
參數nls()
。
start=input$set_start
不起作用,提示「無效的第一個參數」我就先通過noquote()
和as.name()
擺脫了報價,並試圖獲得與get()
值但它說:「對象‘A = 1’找不到」有任何人爲此任務提供解決方案?
下面的例子並不在此設置工作,但如果你在a=1
直接設置起始值和類型,而不是start=input$set_start
它的工作原理
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)
謝謝! :)完美的作品。我的目的是讓應用更加靈活,以便用戶可以插入任意數量的參數,只要他設置一個起始值即可。 另一種方法是靈活的uiOutput,它會爲每個使用的參數生成一個textInput來設置開始值。 但我認爲這個解決方案更直接;) –