Rstudio IDE 1.0可以提升效率的功能

這個月Rstudio剛發布其1.0版本,除了在一些大家正視的熱點如專案管理、封包搭建和notebook互動式coding等等外,其實Rstudio IDE還有做了許多貼心可以改善寫代碼或是分析時候的功能

Tearable Panes

可以拖移的代碼控制板,之前不能的時候,就無法發揮雙螢幕的功效,但現在可以多個代碼穿就顯得非常無痛和舒服了!要是有可以上下或是左右split的功能,就太棒了!tip_tearable.gif

Command History

代碼歷史記錄回朔功能,這部分之前必須用鍵盤上鍵來實現,而Cmd + ⇑ 就可以一次閱覽多次的歷史輸入

tip_console.gif

 

History Panel

代碼歷史控制板,提供對於歷史代碼輸入的搜尋功能tip_history.gif

 

Rename in Scope

提供一次更改整個代碼中某一變數的能力(Rename in Scope),這功能非常強大,也是….一直很痛的問題,還在想說有什麼方法可以改善
tip_rename_in_scope.gif

Jump to Function Definition

F2快捷鍵直接跳進function中的代碼,這功能很棒,很多時候就是…不停的在修各種統計函數的細節
tip_goto_func.gif

Code Snippets

代碼的snippets設定,這功能在大部分其他語言IDE也有,算是可以大大提升速度的功能tip_code_snippet.gif

這邊有 Rstudio release note!其實他們做的gif真的蠻清楚的,一眼就知道可以幹麻!

Rstudio 開發的shiny基本架構

首先, shiny的基本架構就是由:server和ui兩部分的代碼組成。
ui部分的代碼,shiny會把R的代碼渲染成html,而server端的代碼則會處理運算和reactivity的處理。

在一個最簡單app的template,如下:

library(shiny)

#UI部分,會生成html代碼
ui <- fluidPage()

#server部分,後端進行運算和reactivity處理
server <- function(input, output){

}
shinyApp(ui = ui, server = server)

在ui部分的代碼最主要的概念是分為input和output兩類,這兩類在shiny中分別都有相對應的函數可以使用

Input相關的函數,分別對應其所輸入的資料類型和方式

screenshot.png

Output相關的函數,分別對應其所處理的資料種類screenshot.png

在server端,則有三個原則要遵守:

– 每個object使用output$..的方式來指定
– 每個object的創建使用reader*的函數
– 在object創建過程中,要使用從ui輸入的input時,可以用input$nameID來使用

在撰寫一個shiny app 便可以依據上面的架構,依序完成screenshot.png