R語言中的哪些命令或者包讓你相見恨晚

jopen 9年前發布 | 12K 次閱讀 R語言
 

我從開始學R到現在一直都在發現“相見恨晚”的R包。

分析與建模:

  • Matrix包:先進的稀疏矩陣處理,不了解稀疏矩陣概念的時候內存占用和運行速度都不忍直視。
  • Reshape2/ddply:數據處理不用愁。
  • *apply系列:比for更好用的函數,其中tapply遠不如lapply流行,但是實用程度不在其下。實際上lapply有沒有變快得看各人的實現,因為雖然lapply調用了C實現,但是它還是要回頭調用在R里用戶定義的函數才能做計算,這個函數速度如何才是關鍵。
  • compiler包:即使代碼里有for也可以加速。
  • foreach:通用的并行接口,跨平臺多功能。
  • lubridate:處理時間日期格式不求人。
  • gbm:效果和randomForest相近,但是占用內存很少很幸福,而且支持多核 CrossValidation 運算。
  • stats::optim():做優化的最傻瓜選擇。不信看這個三行R代碼做出SVM: weibo.com/1459604443/A3 ,不懂牛頓法也沒關系。

報告與可視化:

  • knitr/slidify:knitr是 @謝益輝 的代表作。做報告、幻燈片 so easy,但是slidify的作者不喜歡寫文檔,所以很頭疼。
  • shiny:用R生成Web App,后端強勁接口統一。例如:hetong.shinyapps.io/img 。
  • recharts:在R中方便快捷地生成可交互圖形,再也不用從R換到js了。

其他:

  • devtools::install_github():脫離CRAN強權統治,Github讓世界更美好。
  • base::match():很多情況下比which,is.element不知高到哪里去了。
  • utils::read.table():設置nrows能提前分配內存,設置comment.char=""與colClasses更能加快讀入。
  • OpenBLAS庫:雖然不是R包,但是多核CPU上對矩陣運算的加速效果實在是太方便明顯了,而且Ubuntu上安裝方便,并不需要重新編譯R。
  • 定義啟動項:如果對stringsAsFactors永遠默認為TRUE深痛惡覺,可以修改Rprofile.site文件,加上每次啟動都自動運行的命令。 @任坤 在評論中提到:定義啟動項比較危險,不注意的話會使得代碼的可移植性出現問題哦,放到別人電腦上一運行發現各種 factor。
  • 升級R包:R的版本更迭之后,可以把老R包復制到新版本的library目錄下,然后運行 update.packages(checkBuilt=TRUE, ask=FALSE) ,這是官方的提示,放在FAQ里,不知道有多少人留意了: R for Windows FAQ
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!