R︱Rstudio 1.0版本嚐鮮(R notebook、下載連結、sparkR、程式碼時間測試profile)
每每以為攀得眾山小,可、每每又切實來到起點,大牛們,緩緩腳步來俺筆記葩分享一下吧,please~
———————————————————————————
2016年11月1日,RStudio 1.0版本正式釋出!這是自2011年2月RStudio釋出以來的第10個主要版本,也是更新最大的一次。主要亮點如下:
1.R Notebooks 的輔助工具(實時反饋結果,這個RMD做不來)
2.對sparklyr包的整合支援(R與Spark連線)
3.profvis包進行效能分析(程式碼執行步驟、程式碼執行時間)
4.基於readr/readxl/haven,優化資料讀取(任意修改載入行名、列名以及一些字串處理)
5.R Markdown的輔助工具(websites和bookdown包)
6.其他優化和bug修復
——部分內容參考自:R語言中文社群
(版本:RStudio-1.0.44)
————————————————————————————————————
一、R notebook
1、安裝問題
如果R的版本夠的話,需要預裝knitr,rmarkdown,同時你點選R notebook就會直接幫你載入。
但是另外一臺電腦在低版本的R中,3.1好像需要加裝tibble 1.0,並且嘗試了還是用不來,報錯:
tibble1.1 is required but 1.0 is available
會讓你check that getOption("repos")看看版本對不對,不夠我載入得對的tibble包,還是沒用,所以不知道是不是版本問題。
2、介面
有以下幾個新功能點:
為 R Markdown增添一個強大的創作引擎。在資料分析領域,R Notebooks 具有極為引人注目的優勢!
(1)實時反饋結果
可以看到程式碼執行到哪一步以及每步的執行結果;可以實時反饋結果,如果是傳統的R Markdown模式,每次修改都需要重新knit(你懂的)才能看到效果,如果遇到大規模的計算,需要等上半天。
而在R Notebooks中,你可以立即看到你執行的程式碼的效果。此處“效果”包括各種內容:控制檯列印結果、繪製圖表、資料框,甚至互動的HTML控制元件。
(2)相容其他語言
R Notebooks不僅可以執行R程式碼,還可以執行 Python, Bash, SQLor C++ (Rcpp).
(3)其他:豐富的輸出格式。即時檢視功能以及分享功能。
————————————————————————————————————
二、sparkR
Sparklyr 包是一個新的介面在R與Apache Spark. RStudio現在整合支援Spark和sparklyr包,主要工具如下:
1.建立和管理Spark連線
2.瀏覽表和Spark資料框的列
3.預覽Spark資料框的前1000行
一旦安裝好sparklyr包,你就可以發現Spark面板。這個面板包括一個新的連線,可以用於本地或者遠端spark例項連線。
連線成功後,你可以看淡Spark叢集中的資料表。
使用RStudio瀏覽Spark資料框中的資料。
————————————————————————————————————————————————————
三、Profiling with profvis——程式碼測試神器
每一步程式碼的耗時,有了這個無疑在寫函式的時候,就能夠很好地對自己的程式碼進行測試,提高編譯效率。筆者覺得這個乃是本次更新最大亮點。
在欄目中就有這個,你可以指定行進行測試,用"profile selected Line(s)"
也可以用"start profilling " 一步一步測試,直到你的程式碼截止,然後點選“stop profilling”
1、分析結果解讀一:程式碼執行步驟
在分析結果中主要有兩塊內容:上部,是程式碼本身,以及執行每一行所消耗的記憶體及時間;下部是一個火焰圖(什麼鬼),顯示R在執行過程中具體幹了啥,橫向從左到右代表時間軸,縱向代表了呼叫棧也就是當前呼叫的函式。
分析結果還有個Data頁,點開來是個呼叫樹,展示了各個函式呼叫的花費情況(仍然是記憶體及時間)。
2、分析結果解讀二:程式碼執行時間
分析結果還有個Data頁,點開來是個呼叫樹,展示了各個函式呼叫的花費情況(仍然是記憶體及時間)。
`a <- 1`程式碼可以調戲profvis
(本節內容來自公眾號子豹)
————————————————————————————————————
四、資料輸入——新手資料匯入福音
RStudio 現在集成了readr/readxl/haven包,以提供高效的工具實現不同格式檔案的匯入。可以直接支援:
匯入的介面很親民,同時把呼叫的程式碼也顯示出來,新手可以來這看看,免去了很多麻煩!!
1、功能點一:指定輸入資料是否需要行名
於是我們指定跳過6行記錄,並且不要將第一行作為列名。
但是有些欄位明明是數字卻被顯示成了字串,可以直接在列名的下拉框裡進行修正。(來源公眾號:子豹)