作者ardodo (米蟲)
看板R_Language
標題[問題] shiny renderUI使用請教
時間Mon Aug 3 15:39:47 2015
[問題類型]:
程式諮詢(我想用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://webptt.com/m.aspx?n=bbs/R_Language/M.1438587589.A.D43.html
1F:→ celestialgod: =="all"的情況沒有exclude出來.... 08/03 17:53
2F:→ celestialgod: 之前的方法不是就可以用了= =? 08/03 17:53
3F:→ ardodo: 先前observe可以用,但是我如果要多種條件都要observe 08/03 18:18
4F:→ ardodo: 的話,我就做不出來。想試試看renderUI會不會比較容易控制 08/03 18:19
5F:→ ardodo: 這種多重條件下的input與output變化 08/03 18:19
6F:→ celestialgod: 這個我沒用過 我不知道 08/03 18:23
7F:→ celestialgod: 多重條件就需要isolate去設定 08/03 18:24
9F:→ celestialgod: 看看是不是你想要的 08/03 19:23
10F:→ cywhale: demox=reactive({ out=demo[your condition selected by 08/03 23:20
11F:→ cywhale: ..selectInput, ]}), then show demox() in renderTable 08/03 23:21
12F:推 cywhale: u use input$model in selectInput itself, but without 08/03 23:31
13F:→ cywhale: "selected=" default value, it makes NA problem.. 08/03 23:32
14F:→ cywhale: u can use another var,e.g brandx=reactive({if(is.null 08/03 23:42
15F:→ cywhale: (input$brand) unique(demo$brand) 08/03 23:43
16F:→ cywhale: if(input$brand=='all') unique(demo$brand) else input$ 08/03 23:44
17F:→ cywhale: brand }), then use demo[brand==brandx(),] in aboving 08/03 23:46
18F:→ cywhale: demox() function to filter your criteria.. 08/03 23:46
19F:推 celestialgod: cy大大下次也許可以考慮回文,這樣會比較清楚喔 08/04 00:22
20F:→ cywhale: sorry^^本來只回兩句,沒想到後面愈補愈多造成閱讀不便 08/05 09:03
21F:→ ardodo: 感謝cel版主回覆,我發現一個小問題想修正 08/05 10:13
22F:→ ardodo: 若我選擇tax==x並觀察完右側表格後,我想看tax==y並觀察 08/05 10:14
23F:→ ardodo: 必需要先選擇tax==all,之後才能選tax==y 08/05 10:15
24F:→ ardodo: 其他選項我也想要有這樣的設定,請問是在isolate裡面的 08/05 10:15
25F:→ ardodo: ifelse設定嗎? 08/05 10:15
26F:→ celestialgod: 我有注意過這個問題,這個設計的原因是因為你選特定 08/05 11:27
27F:→ celestialgod: 選項時你想刪掉其他不可選的選項,而你可能做多重 08/05 11:27
28F:→ celestialgod: 選取,才不保留該項。 08/05 11:27
29F:→ celestialgod: 你只要不更新你選的選項就可以保留其他選項。 08/05 11:28
30F:→ celestialgod: 像是在tax那個變數中的updateInput_f("tax")刪除就 08/05 11:29
31F:→ celestialgod: 不會更新tax的選項 08/05 11:29
32F:→ ardodo: 感謝cel版主的指點,code修改後已可做出我想要的設計 08/05 13:09
34F:→ ardodo: 看起來的重點有兩個:1. reactiveValue的設定 2. isolate 08/05 13:12
35F:→ ardodo: 與observe的搭配 08/05 13:13
36F:→ celestialgod: 嗯嗯,我有空研究看看renderUI,再告知你作法。 08/05 13:29
37F:→ celestialgod: renderUI很難用...放棄了XD 08/05 14:43
39F:→ celestialgod: 後來試出上面比較簡單的版本 08/05 14:47
40F:→ celestialgod: 但是你資料量一大,這個處理會很慢 08/05 15:06
41F:→ celestialgod: 因為你每次更新都要複製一次df... 08/05 15:06
42F:→ ardodo: 感謝cel版主的幫忙,謝謝囉 08/05 15:34