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

分享到微信
分享到微博