[問題] shiny sever內寫for loop?

作者: theonee (紅獅子)   2020-04-29 16:36:43
[問題類型]:
請問 在撰寫shiny app sever時候 如何將:
1. 多個for loop寫在server裡面?
2. 並且shiny可成功畫出rect2D()?
3. 平常要畫df或plot都能成功執行
但若改用shiny (邏輯運算不變 有注意更改input output關係) 卻很常錯誤...
想問說是否有寫法是 直接在shiny 的ui and server 之外
進行邏輯運算 例如for loop?
note:
我嘗試google些方法 但我還是不太會套用...
例如:Map() reactive()
run後出現錯誤 error: incorrect number of dimensions
不確定是否主因是for loop。但肯定for loop寫在server需要他方法才能過關...
請幫解惑
感恩
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
同上 問題類型
[程式範例]:
https://reurl.cc/WdR5e5
page 1 請存成 ui.R
page 2 請存成 server.R
若 粗體字部分 單獨run 可成功
若 紅色部分拿掉 也可成功run shiny
page 3 為兩次執行結果
[環境敘述]:
[關鍵字]:
shiny
plot3D
rect2D
作者: cywhale (cywhale)   2020-04-29 17:02:00
for本身應該不是問題,此錯誤通常是某個型別出了差錯?你可能要提供較完整可run的程式碼,才能知道哪出問題...
作者: locka (locka)   2020-04-29 18:20:00
對新手來說shiny可能不work的地方很多,同樓上建議請提供可執行的程式碼~
作者: theonee (紅獅子)   2020-04-29 19:23:00
謝回覆。我剛更新分享檔案 再請指導 感恩~
作者: locka (locka)   2020-04-29 21:38:00
執行你的程式碼問題應該是出現在 diffdm0 <- rbind() 那行他把數字都轉型成character 了 所以 for裡面 in1[1,1]:in1[2,1]抓到的不是數字0初步看如果改成 diffm0 <- data.frame(V1=c(0,9),V2=c(0,7)...V6=c("rx","rx")) 後面就可以成功了(更好的方法就請其他版友提供了哈哈)btw, 以上只針對 incorrect number of dimensions 這個錯誤,(後面 setdiff 可能又會衍生其他問題,哈)
作者: theonee (紅獅子)   2020-04-29 22:28:00
謝L大分享 我試試看

Links booklink

Contact Us: admin [ a t ] ucptt.com