作者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/cn.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