推 seimwiwa: 不知道要呈現什麼圖形,但是不是可以filter(學年%in%c(1 01/03 23:46
→ seimwiwa: ,2),性別%in%c(‘m’)這種就好,手機拍版見諒。 01/03 23:46
目前是跑geom_point,現在我很多的if else程式碼架構大概是
if(input$年級 是XXX){
if(input$性別 是男){
if(input$年度是 XXX){
if(input$學期是 XXX){
if(input$事件是 XXX){
再透過filter去篩選DF的資料,呈現圖型
}
}
}
}
}else if(input$年級是 XXX){
.....
}
就是有多少可能性我都寫好...
※ 編輯: daybreakya (114.37.142.160), 01/04/2018 00:15:37
→ cywhale: ? dplyr::case_when code那張圖應完整些才比較知道你要啥 01/04 00:35
推 a78998042a: 沒寫過shiny,不過就是問簡化if else的寫法? 01/04 09:10
→ a78998042a: ### 建立 temp,包含 01/04 09:10
→ a78998042a: ### 3個年級、2種性別、3個學年度、2個學期、2個事件 01/04 09:11
→ a78998042a: temp=expand.grid(1:3,c('F','M'),105:107,1:2,1:2) 01/04 09:11
→ a78998042a: colnames(temp)=c('年級','性別','年度','學期', 01/04 09:12
→ a78998042a: '事件') 01/04 09:12
→ a78998042a: ### 當 年級=1, 性別=F, 年度=105, 學期=事件=1 01/04 09:13
→ a78998042a: ### 以A、B、C、D、E 作為index 01/04 09:13
→ a78998042a: A = 1; B = 'F'; C = 105; D = 1; E = 1 01/04 09:13
→ a78998042a: with(temp, which(年級==A & 性別==B & 年度==C & 01/04 09:14
→ a78998042a: 學期==D &事件 == E)) 01/04 09:14
→ a78998042a: ###得到位置然後畫圖,這樣有解決您的問題嗎? 01/04 09:14
推 chuubbyy: 這只是篩選的問題,不需要ifelse,轉成data table,然後 01/04 11:08
→ chuubbyy: ,DT[年級 %in% input$年級][性別 %in% input$性別][年 01/04 11:08
→ chuubbyy: 度 %in% input$年度]...... 01/04 11:08
→ daybreakya: 阿..謝謝回答的大家,看起來方便好多,等等來研究一下 01/04 12:44
→ HumuHumu: switch? 01/04 15:40
剛剛終於修改完畢,下午研究了一下大家提供的方法
最後使用chuubbyy大說的方法
把昨天3萬多行的ifelse程式縮到約100多行內
程式不熟,只能土法煉鋼,改完後,速度也快多了
※ 編輯: daybreakya (120.127.169.50), 01/04/2018 18:47:39
→ clansoda: 我比較好奇三萬多行是要怎麼寫,也是很有耐心 01/04 19:19