R語言CRAN軟體包Meta分析
我一直在尋找各種方法來查詢有關R包的資訊,但我最近才瞭解CRAN_package_db()了基本tools包中的函式。如果一位同事沒有向我指出,我確信我永遠不會自己找到它。
當被呼叫時,這個函式傳送到由環境變數指定的CRAN映象,R_CRAN_WEB並返回一個數據幀,其中包含有關CRAN上當前每個包的大量資訊。它是元資料的寶庫。
使用返回的資訊可能需要一點資料糾纏。在這篇文章中,我將展示一些我準備好的關於我的rstudio :: conf 2018談話的一些清理(但非常優雅)的版本,什麼是一個偉大的R包?作為處理角色資料的一個例子。我有興趣瞭解編寫典型R包所需的協作感,以及感受其他包開發人員對包的適用性。我選擇進行協作的代理是每個軟體包列出的作者數量。我對其他軟體包開發人員有用的代理是反向依賴和反向匯入的聯合。
我做的第一件事是選擇資料框的一個子集來處理。
## Observations: 12,123## Variables: 6## $ Package"A3", "abbyyR", "abc", "abc.data", "ABC.RAP", "ABCanal...## $ Dep"R (>= 2.15.0), xtable, pbapply", "R (>= 3.2.0)", "R (...## $ ImpNA, "httr, XML, curl, readr, plyr, progress", NA, NA, ...## $ Aut"Scott Fortmann-Roe", "Gaurav Sood [aut, cre]", "Csill...## $ RDNA, NA, "abctools, EasyABC", "abc", NA, NA, NA, NA, NA...## $ RI NA, NA, "ecolottery", NA, NA, NA, NA, NA, NA, NA, NA, ...
請注意,在這篇文章中,我正在使用我剛剛講話之前從CRAN提取的一個檔案中的資料,但您應該沒有任何問題CRAN_package_db()來獲取更新的資料集。
接下來我做的是向資料集中新增兩個新變數:DepImp依賴包和匯入包RDRI的聯合,以及反向聯合依賴並反向匯入包。
另外,事實證明,作者欄位需要一些工作,以便從作者字串中刪除像“[aut,cre]”和“[ctb,cph]”這樣的限定性文字。
一旦我有了一些乾淨的文字,我使用了以下程式碼的非常混亂的初步版本來獲取我正在查詢的計數資料。請注意,派生的特性DepImp以及RDRI需要的某些預處理與從我選擇的其他特性中提取計數所需的預處理不同。在這裡,我做了一件非常不整潔的事情,並建立了兩個初步的資料框架 - 效率不高,但對我來說更容易完成和除錯。
## Package Aut Dep Imp RD RI DepImp RDRI## 1 A3 1 3 0 0 0 3 0## 2 abbyyR 1 1 6 0 0 7 0## 3 abc 4 6 0 2 1 6 3## 4 abc.data 4 1 0 1 0 1 1## 5 ABC.RAP 4 1 3 0 0 4 0## 6 ABCanalysis 3 1 1 0 0 2 0
一旦我有了清晰的資料,計算一些簡單的統計資料就變得微不足道了。在這裡,我們看到手段和中位數的數字很小,但是反向依賴和反向進口以及它們的聯合的標準偏差反映了相當大的差異。
## Features mean sd median## 1 Aut 2.25 2.73 1## 2 Dep 1.53 1.57 1## 3 Imp 2.85 3.89 1## 4 RD 0.81 9.09 0## 5 RI 2.30 23.23 0## 6 DepImp 4.37 4.06 3## 7 RDRI 3.11 30.79 0
在A一目瞭然RDRI位數表明,這種變化是由於比較少的包。直方圖表示很長的尾巴。
## 0% 25% 50% 75% 100%## 0 0 0 0 1239
## Warning: Removed 4 rows containing non-finite values (stat_bin).
## Warning: Removed 1 rows containing missing values (geom_bar).
對RDRI欄位進行排序可找到前15個最整合的軟體包。由此,我的意思是最依賴或由其他軟體包匯入的軟體包。
## Package Aut DepImp RDRI## 1 Rcpp 7 3 1239## 2 MASS 6 6 1157## 3 MASS 6 6 1157## 4 ggplot2 3 11 1149## 5 dplyr 5 12 716## 6 Matrix 13 7 680## 7 Matrix 13 7 680## 8 plyr 1 2 555## 9 stringr 2 3 500## 10 mvtnorm 9 3 483## 11 magrittr 1 0 454## 12 survival 2 7 434## 13 survival 2 7 434## 14 jsonlite 3 1 426## 15 httr 2 6 420
最後,檢視作者領域的分位數和直方圖給出了一些合作的想法。大多數軟體包的作者少於三位,表明只有非常適度的協作。
## 0% 25% 50% 75% 100%## 1 1 1 3 97
## Warning: Removed 9 rows containing non-finite values (stat_bin).
我希望提供的軟體包元資料的簡單可用性CRAN_package_db()將激發一些分析R軟體包特性的認真工作。
大資料部落——中國專業的第三方資料服務提供商,提供定製化的一站式資料探勘和統計分析諮詢服務統計分析和資料探勘諮詢服務 :y0.cn/teradat(諮詢服務請聯絡官網客服)QQ:3025393450【服務場景】 科研專案; 公司專案外包 ;線上線下一對一培訓 ;學術研究。【大資料部落】提供定製化的一站式資料探勘和統計分析諮詢服務分享最新的大資料資訊,每天學習一點資料分析,讓我們一起做有態度的資料人微信客服號:lico_9eQQ交流群:186388004 歡迎關注微信公眾號,瞭解更多資料乾貨資訊!