2018 through {cranlogs}

[This article was first published on Colin Fay, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

2018 at glance with {cranlogs}.

Let’s load the necessary packages.

library(cranlogs)
library(data.table)
library(lubridate)

## 
## Attaching package: 'lubridate'

## The following objects are masked from 'package:data.table':
## 
##     hour, isoweek, mday, minute, month, quarter, second, wday,
##     week, yday, year

## The following object is masked from 'package:base':
## 
##     date

library(ggplot2)
library(magrittr)

All downloads

We’ll use {cranlogs} to retrieve the data from the RStudio CRAN mirror.

First, the number of package downloads by day in 2018.

total_dl <- cran_downloads(from = "2018-01-01", to = "2018-12-31")

# Turn to a data.table
setDT(total_dl)

# Round the date to month and week
total_dl[, `:=`(
  round_week = floor_date(date, "week" ),
  round_month = floor_date(date, "month" )
  ) ]

How many download in total?

total_dl[, .(total = sum(count))]

##        total
## 1: 614548197

Let’s plot this:

random_viridis <- function(n){
  sample(viridis::viridis(100), n)
}
total_dl[, .(count = sum(count)), round_week] %>%
  ggplot(aes(round_week, count)) + 
  geom_col(fill = random_viridis(1)) + 
  labs(
    title = "Packages downloads by Week on RStudio CRAN mirror", 
    subtitle = "data via {cranlogs}", 
    x = "week"
  ) + 
  theme_minimal()

total_dl[, .(count = sum(count)), round_month] %>%
  ggplot(aes(round_month, count)) + 
  geom_col(fill = random_viridis(1)) + 
  labs(
    title = "Packages downloads by Month on RStudio CRAN mirror", 
    subtitle = "data via {cranlogs}", 
    x = "month"
  ) + 
  theme_minimal()

R download

Let’s now have a look at the number of downloads for R itself:

total_r <- cran_downloads("R", from = "2018-01-01", to = "2018-12-31")

setDT(total_r)

total_r[, `:=`(
  round_week = floor_date(date, "week" ),
  round_month = floor_date(date, "month" )
) ]

How many download in total?

total_r[, .(total = sum(count))]

##      total
## 1: 1041727

Plotting this:

total_r[, .(count = sum(count)), round_week] %>%
  ggplot(aes(round_week, count)) + 
  geom_col(fill = random_viridis(1)) + 
  labs(
    title = "R downloads by Week on RStudio CRAN mirror", 
    subtitle = "data via {cranlogs}", 
    x = "week"
  ) + 
  theme_minimal()

total_r[, .(count = sum(count)), round_month] %>%
  ggplot(aes(round_month, count)) + 
  geom_col(fill = random_viridis(1)) + 
  labs(
    title = "R downloads by Month on RStudio CRAN mirror", 
    subtitle = "data via {cranlogs}", 
    x = "month"
  ) + 
  theme_minimal()

Let’s have a look to the number of download by R version:

total_r[, .(count = sum(count)), version][order(count, decreasing = TRUE)] %>%
  head(10)

##          version  count
##  1:        3.5.1 464837
##  2:        3.4.3 174665
##  3:        3.5.0 137886
##  4:        3.4.4 107124
##  5:       latest  32642
##  6: 3.5.1patched  32119
##  7:        3.3.3  27992
##  8:        3.5.2  21645
##  9:        devel   8543
## 10:        3.2.4   4814

total_r[, .(count = sum(count)), version][order(count)] %>%
  head(10)

##        version count
##  1:    3.5.1rc     2
##  2:  3.5.2beta     2
##  3:    3.5.2rc     6
##  4:  3.5.0beta     8
##  5:    3.4.4rc    11
##  6: 3.5.0alpha    11
##  7:    3.5.0rc    12
##  8:      2.6.1    13
##  9:      2.8.0    16
## 10:      2.2.1    17

total_r[, .(count = sum(count)), version][order(count, decreasing = TRUE)] %>%
  head(10) %>% 
  ggplot(aes(reorder(version, count), count)) +
  coord_flip() +
  geom_col(fill = random_viridis(1)) + 
  labs(
    title = "10 most downloaded R versions in 2018 on RStudio CRAN mirror", 
    subtitle = "data via {cranlogs}", 
    x = "version"
  ) + 
  theme_minimal()

And by os:

total_r[, .(total = sum(count)), os]

##     os  total
## 1: osx 228573
## 2: win 767319
## 3: src  42725
## 4:  NA   3110

And a happy new year ????????

To leave a comment for the author, please follow the link and comment on their blog: Colin Fay.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)