R語言中的哪些命令或者包讓你相見恨晚
我從開始學R到現(xiàn)在一直都在發(fā)現(xiàn)“相見恨晚”的R包。
我從開始學R到現(xiàn)在一直都在發(fā)現(xiàn)“相見恨晚”的R包。
分析與建模:
- Matrix包:先進的稀疏矩陣處理,不了解稀疏矩陣概念的時候內存占用和運行速度都不忍直視。
- Reshape2/ddply:數(shù)據處理不用愁。
- *apply系列:比for更好用的函數(shù),其中tapply遠不如lapply流行,但是實用程度不在其下。實際上lapply有沒有變快得看各人的實現(xiàn),因為雖然lapply調用了C實現(xiàn),但是它還是要回頭調用在R里用戶定義的函數(shù)才能做計算,這個函數(shù)速度如何才是關鍵。
- compiler包:即使代碼里有for也可以加速。
- foreach:通用的并行接口,跨平臺多功能。
- lubridate:處理時間日期格式不求人。
- gbm:效果和randomForest相近,但是占用內存很少很幸福,而且支持多核 CrossValidation 運算。
- stats::optim():做優(yōu)化的最傻瓜選擇。不信看這個三行R代碼做出SVM:weibo.com/1459604443/A3,不懂牛頓法也沒關系。
報告與可視化:
- knitr/slidify:knitr是 @謝益輝 的代表作。做報告、幻燈片 so easy,但是slidify的作者不喜歡寫文檔,所以很頭疼。
- shiny:用R生成Web App,后端強勁接口統(tǒng)一。例如:hetong.shinyapps.io/img 。
- recharts:在R中方便快捷地生成可交互圖形,再也不用從R換到js了。
其他:
- devtools::install_github():脫離CRAN強權統(tǒng)治,Github讓世界更美好。
- base::match():很多情況下比which,is.element不知高到哪里去了。
- utils::read.table():設置nrows能提前分配內存,設置comment.char=""與colClasses更能加快讀入。
- OpenBLAS庫:雖然不是R包,但是多核CPU上對矩陣運算的加速效果實在是太方便明顯了,而且Ubuntu上安裝方便,并不需要重新編譯R。
- 定義啟動項:如果對stringsAsFactors永遠默認為TRUE深痛惡覺,可以修改Rprofile.site文件,加上每次啟動都自動運行的命令。 @任坤 在評論中提到:定義啟動項比較危險,不注意的話會使得代碼的可移植性出現(xiàn)問題哦,放到別人電腦上一運行發(fā)現(xiàn)各種factor。
- 升級R包:R的版本更迭之后,可以把老R包復制到新版本的library目錄下,然后運行 update.packages(checkBuilt=TRUE, ask=FALSE) ,這是官方的提示,放在FAQ里,不知道有多少人留意了:R for Windows FAQ
|
責任編輯:李英杰
來源:
愛數(shù)據

分享到微信
分享到微博