Rで解析:CRAN掲載パッケージの統計情報を取得「packageRank」パッケージ


CRAN掲載パッケージのダウンロード数やパッケージ履歴などの統計情報を取得できるパッケージの紹介です。統計情報は図で表示可能です。例えば「R」のバージョン推移のダウンロード数を取得することが可能です。

パッケージバージョンは0.6.0。実行コマンドはwindows 11のR version 4.1.3で確認しています。

パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("packageRank")

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("packageRank")

#パッケージのダウンロード数を確認:cranDownloadsコマンド
#"last-day","last-week","last-month"の期間を指定:whenオプション
#"yyyy-mm-dd","yyyy-mm","yyyy"の期間で指定:from/toオプション
GetData <- cranDownloads(packages = c("ggfocus", "compareDF"),
                         when = "last-week",
                         from = NULL, to = NULL)
#データ構成:取得データはlist class
str(GetData)
#List of 5
#$ packages     : chr [1:2] "ggfocus" "compareDF"
#$ cranlogs.data:'data.frame':	14 obs. of  4 variables:
# ..$ date      : Date[1:14], format: "2022-03-09" "2022-03-10" ...
# ..$ count     : num [1:14] 18 10 12 7 10 9 13 82 32 48 ...
# ..$ cumulative: num [1:14] 18 28 40 47 57 66 79 82 114 162 ...
# ..$ package   : chr [1:14] "ggfocus" "ggfocus" "ggfocus" "ggfocus" ...
#$ when         : chr "last-week"
#$ from         : NULL
#$ to           : NULL
#- attr(*, "class")= chr "cranDownloads"

#ダウンロード数
head(GetData$cranlogs.data)
#        date count cumulative package
#1 2022-03-09    18         18 ggfocus
#2 2022-03-10    10         28 ggfocus
#3 2022-03-11    12         40 ggfocus
#4 2022-03-12     7         47 ggfocus
#5 2022-03-13    10         57 ggfocus
#6 2022-03-14     9         66 ggfocus

#プロット
plot(GetData, multi.plot = TRUE)
#もしくは
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
ggplot(GetData$cranlogs.data, aes(x = date, y = count,
                                  group = package, color = package)) +
  geom_line()

###例えば「R」自体のダウンロード数#####
RData <- cranDownloads(packages = "R", from = 2020, to = 2022)
#プロット;Rバージョン変移付き
plot(RData, multi.plot = TRUE,
     r.version = TRUE)
########

#パッケージダウンロードランキングを取得:packageRankコマンド
#http://cran-logs.rstudio.comから指定日のCRANLogデータがダウンロードされます
RankData <- packageRank(package = c("ggfocus", "compareDF"), date = "2022-03-15")

#確認
RankData
#        date  packages downloads             rank percentile
#1 2022-03-15   ggfocus        13 15,978 of 21,013       19.7
#2 2022-03-15 compareDF       113  1,959 of 21,013       90.6

#プロット
plot(RankData, multi.plot = TRUE)
########

#パッケージの更新履歴を取得:packageHistoryコマンド
packageHistory(package = c("ggfocus", "compareDF"))
#[[1]]
#  Package Version       Date Repository
#1 ggfocus     0.8 2018-05-29    Archive
#2 ggfocus     0.9 2019-01-07    Archive
#3 ggfocus   1.0.0 2020-01-23       CRAN

#[[2]]
#Package Version       Date Repository
#1  compareDF   1.0.0 2016-03-08    Archive
#2  compareDF   1.1.0 2017-01-18    Archive
#3  compareDF   1.2.0 2017-09-11    Archive
######途中省略
#18 compareDF   2.3.1 2021-01-06    Archive
#19 compareDF   2.3.2 2021-10-13    Archive
#20 compareDF   2.3.3 2022-03-12       CRAN

出力例

・cranDownloadsコマンドで取得したデータ

・例えば「R」自体のダウンロード数

・packageRankコマンドで取得したデータ


少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

スポンサードリンク