0
Shinyに構文の問題があります。私は、入力データが私のserver.R
スクリプトで先に作成された反応性データフレームUpdate_df1
であるループで非線形回帰を実行したいと思います。出力は予測値を含むデータフレームとなり、次にUpdate_df1
リアクティブデータフレームに追加してFinal_df
を作成します。以下は私が働くことができないserver.R
スクリプトの一部です。私の問題をどのように処理できるのか誰でも知っていますか?Shinyの反応的なデータフレームを持つループで回帰を実行
更新
Age<-reactive({
prediction<- data.frame(Update_df1()$Site_ID)
prediction$f_Age <- NA
colnames(prediction)<- c("Site_ID", "f_Age")
for(id in unique(Update_df1()$Site_ID)){
lm_Age<- try(nlsLM(NEP~offset + A*(1-exp(k*Stand_Age)), data = Update_df1()[ Update_df1()$Site_ID != id,],
start = list(A= 711.5423, k= -0.2987, offset= -444.2672),
lower= c(A = -Inf, k = -Inf, offset= -1500), control = list(maxiter = 500), weights = 1/Uncert), silent=TRUE)
prediction$f_Age[prediction$Site_ID == id] <- predict(object = lm_Age, newdata = Update_df1()[Update_df1()$Site_ID == id,])
}%>% as.data.frame()
})
Final_df<-reactive({
data.frame(Update_df1(), Age())
})
私が得たエラーメッセージがWarning: Error in data.frame: arguments imply differing number of rows: 126, 0
です。データフレームAge
は空のようです。
あなたは 'Age()'の中であまりにも多くのことをやっているので、小さな塊に分解することをお勧めします。また、反応式で '.'を使わないでください。 –
'lm.age'オブジェクトと' f_age'変数の作成はお互いに依存していますので、どのように反応式を分解することができるかはわかりません。何か案は? – SimonB
同じループ内に作成されていることを意味します。 – SimonB