[問題] shiny renderUI使用請教

看板R_Language作者 (米蟲)時間10年前 (2015/08/03 15:39), 編輯推噓2(2040)
留言42則, 3人參與, 最新討論串1/2 (看更多)
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 使用者(已經有用R 做過不少作品) [問題敘述]: 使用renderUI製作可依input條件篩選的output table 各位版友好,又來請教shiny的問題了,這次主要的問題是renderUI 我想要我的output table能根據我設計的input篩選而有正確的呈現,而且每一個 篩選條件能彼此呼應 如選擇了brand==a,model只剩下a11,a21,a31可選,若此時先選擇tax==y,則 model只剩下a11,a21可選,此時seller可選擇的條件為A與B可選 [code] http://pastebin.com/PQJARZWm [錯誤說明] 1. 出現以下警告訊息: Warning in run(timeoutMs) : is.na() applied to non-(list or vector) of type 'NULL' 2. 我的renderTable沒有出現 懇請指點,謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.222.207.246 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1438587589.A.D43.html

08/03 17:53, , 1F
=="all"的情況沒有exclude出來....
08/03 17:53, 1F

08/03 17:53, , 2F
之前的方法不是就可以用了= =?
08/03 17:53, 2F

08/03 18:18, , 3F
先前observe可以用,但是我如果要多種條件都要observe
08/03 18:18, 3F

08/03 18:19, , 4F
的話,我就做不出來。想試試看renderUI會不會比較容易控制
08/03 18:19, 4F

08/03 18:19, , 5F
這種多重條件下的input與output變化
08/03 18:19, 5F

08/03 18:23, , 6F
這個我沒用過 我不知道
08/03 18:23, 6F

08/03 18:24, , 7F
多重條件就需要isolate去設定
08/03 18:24, 7F

08/03 19:23, , 8F

08/03 19:23, , 9F
看看是不是你想要的
08/03 19:23, 9F

08/03 23:20, , 10F
demox=reactive({ out=demo[your condition selected by
08/03 23:20, 10F

08/03 23:21, , 11F
..selectInput, ]}), then show demox() in renderTable
08/03 23:21, 11F

08/03 23:31, , 12F
u use input$model in selectInput itself, but without
08/03 23:31, 12F

08/03 23:32, , 13F
"selected=" default value, it makes NA problem..
08/03 23:32, 13F

08/03 23:42, , 14F
u can use another var,e.g brandx=reactive({if(is.null
08/03 23:42, 14F

08/03 23:43, , 15F
(input$brand) unique(demo$brand)
08/03 23:43, 15F

08/03 23:44, , 16F
if(input$brand=='all') unique(demo$brand) else input$
08/03 23:44, 16F

08/03 23:46, , 17F
brand }), then use demo[brand==brandx(),] in aboving
08/03 23:46, 17F

08/03 23:46, , 18F
demox() function to filter your criteria..
08/03 23:46, 18F

08/04 00:22, , 19F
cy大大下次也許可以考慮回文,這樣會比較清楚喔
08/04 00:22, 19F

08/05 09:03, , 20F
sorry^^本來只回兩句,沒想到後面愈補愈多造成閱讀不便
08/05 09:03, 20F

08/05 10:13, , 21F
感謝cel版主回覆,我發現一個小問題想修正
08/05 10:13, 21F

08/05 10:14, , 22F
若我選擇tax==x並觀察完右側表格後,我想看tax==y並觀察
08/05 10:14, 22F

08/05 10:15, , 23F
必需要先選擇tax==all,之後才能選tax==y
08/05 10:15, 23F

08/05 10:15, , 24F
其他選項我也想要有這樣的設定,請問是在isolate裡面的
08/05 10:15, 24F

08/05 10:15, , 25F
ifelse設定嗎?
08/05 10:15, 25F

08/05 11:27, , 26F
我有注意過這個問題,這個設計的原因是因為你選特定
08/05 11:27, 26F

08/05 11:27, , 27F
選項時你想刪掉其他不可選的選項,而你可能做多重
08/05 11:27, 27F

08/05 11:27, , 28F
選取,才不保留該項。
08/05 11:27, 28F

08/05 11:28, , 29F
你只要不更新你選的選項就可以保留其他選項。
08/05 11:28, 29F

08/05 11:29, , 30F
像是在tax那個變數中的updateInput_f("tax")刪除就
08/05 11:29, 30F

08/05 11:29, , 31F
不會更新tax的選項
08/05 11:29, 31F

08/05 13:09, , 32F
感謝cel版主的指點,code修改後已可做出我想要的設計
08/05 13:09, 32F

08/05 13:09, , 33F
08/05 13:09, 33F

08/05 13:12, , 34F
看起來的重點有兩個:1. reactiveValue的設定 2. isolate
08/05 13:12, 34F

08/05 13:13, , 35F
與observe的搭配
08/05 13:13, 35F

08/05 13:29, , 36F
嗯嗯,我有空研究看看renderUI,再告知你作法。
08/05 13:29, 36F

08/05 14:43, , 37F
renderUI很難用...放棄了XD
08/05 14:43, 37F

08/05 14:47, , 38F
原本要試renderUI http://pastebin.com/nzsNh8Ty
08/05 14:47, 38F

08/05 14:47, , 39F
後來試出上面比較簡單的版本
08/05 14:47, 39F

08/05 15:06, , 40F
但是你資料量一大,這個處理會很慢
08/05 15:06, 40F

08/05 15:06, , 41F
因為你每次更新都要複製一次df...
08/05 15:06, 41F

08/05 15:34, , 42F
感謝cel版主的幫忙,謝謝囉
08/05 15:34, 42F
文章代碼(AID): #1Llnh5r3 (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1Llnh5r3 (R_Language)