# Mentorship

Daniel E. Weeks November 21, 2020, 14:11

- 1 Load Libraries
- 2 Input directory and files
- 3 The AlShebli et al (2020) mentorship paper
- 4 The data
- 5 ProtegeFirstPubYear
- 6 Distribution of ProtegeFirstPubYear
- 7 NumYearsPostMentorship
- 8 AvgMentorsAcAges
- 9 Avg_c5
- 10 Avg_c10
- 11 Avg_c5 vs Avg_c10
- 12 numMentors
- 13 Summary
- 13.1 Problem: No gender information for mentors
- 13.2 Problem: ProtegeFirstPubYear time range is very large
- 13.3 Problem: Error in the equation for NumYearsPostMentorship
- 13.4 Problem: some values of
`NumYearsPostMentorship`

are unrealistically large - 13.5 Problem: some
`AvgMentorsAcAges`

are unrealistically large - 13.6 Problem with Avg_c10: Cannot compute a value
`Avg_c10`

for recent publications - 13.7 Problem: some
`numMentors`

values are too large

- 14 Generating GitHub Markdown
- 15 Session Information

# 1 Load Libraries

```
library(tidyverse)
# library(tidylog)
library(ggExtra)
library(arsenal)
```

# 2 Input directory and files

```
# Print the working directory
getwd()
```

```
## [1] "/Users/dweeks/data/Mentorship"
```

# 3 The AlShebli et al (2020) mentorship paper

Here I examine the data provided by the authors of this paper:

AlShebli B, Makovi K, Rahwan T. The association between early career informal mentorship in academic collaborations and junior author performance. Nat Commun. 2020 Nov 17;11(1):5855. doi: 10.1038/s41467-020-19723-8. PMID: 33203848. https://pubmed.ncbi.nlm.nih.gov/33203848/

# 4 The data

## 4.1 The input data

The input data are from the ‘bedoor/Mentorship’ GitHub repository at

https://github.com/bedoor/Mentorship

Their repository is described as:

‘This repository includes all data used in “The Association between Early Career Informal Mentorship in Academic Collaborations and Junior Author Performance”.’

```
LinesRead <- 1e+05
inFile <- "Mentorship/Repository_Data/Data_7yearcutoff.csv"
a <- read_csv(file = inFile, n_max = LinesRead)
```

```
## Parsed with column specification:
## cols(
## .default = col_double(),
## Pr0tegeGender = col_character(),
## AffiliationRank = col_character()
## )
## See spec(...) for full column specifications.
```

```
names(a)
```

```
## [1] "Disambiguated_ProtegeID" "AvgBigShot"
## [3] "AvgBigShotBin" "AvgHub"
## [5] "AvgHubBin" "Avg_c5"
## [7] "numMentors" "numMentorsBin"
## [9] "ProtegeFirstPubYear" "ProtegeFirstPubYearBin"
## [11] "Pr0tegeGender" "ProtegeGenderBin"
## [13] "AffiliationRank" "AffiliationRankBin"
## [15] "AvgMentorsAcAges" "AvgMentorsAcAgesBin"
## [17] "NumYearsPostMentorship" "NumYearsPostMentorshipBin"
## [19] "ProtegeDisciplineID" "Avg_c10"
## [21] "MaxBigShot" "MaxBigShotBin"
## [23] "MedianBigShot" "MedianBigShotBin"
## [25] "MaxHub" "MaxHubBin"
## [27] "MedianHub" "MedianHubBin"
```

```
total_records <- as.integer(system2("wc", args = c("-l", inFile, " | awk '{print $1}'"),
stdout = TRUE))
total_records
```

```
## [1] 1055213
```

## 4.2 Disclaimer: For speed, only read in the first 10^{5} lines

To speed up the analyses, we read only the first 10^{5} lines of the input file, instead of reading all 1055213 lines.

## 4.3 Problem: No gender information for mentors

There does not appear to be any information in the provided file about the mentor’s gender, so the provided data do not appear to be ‘all the data’.

There is no data dictionary, so we are left to infer what is in each column of the data file from the column names and content.

# 5 ProtegeFirstPubYear

# 6 Distribution of ProtegeFirstPubYear

“Year of the protege’s first publication: The year in which the protege published their first mentored paper.”

```
summary(a$ProtegeFirstPubYear)
```

```
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1897 1992 2000 1997 2006 2013
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear)) + geom_histogram() + ggtitle("Distribution of ProtegeFirstPubYear")
```

```
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
```

```
table(a$Pr0tegeGender)
```

```
##
## female male
## 34257 65743
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear)) + geom_histogram() + ggtitle("Distribution of ProtegeFirstPubYear") +
facet_grid(~Pr0tegeGender)
```

```
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
```

```
a$MaleProtegeFirstPubYear <- a$ProtegeFirstPubYear
a$MaleProtegeFirstPubYear[a$Pr0tegeGender == "female"] <- NA
a$FemaleProtegeFirstPubYear <- a$ProtegeFirstPubYear
a$FemaleProtegeFirstPubYear[a$Pr0tegeGender == "male"] <- NA
summary(a$MaleProtegeFirstPubYear)
```

```
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1897 1990 1999 1996 2005 2013 34257
```

```
summary(a$FemaleProtegeFirstPubYear)
```

```
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1901 1995 2002 2000 2007 2013 65743
```

```
p <- ggplot(data = a, aes(x = x)) + geom_histogram(aes(x = MaleProtegeFirstPubYear,
y = ..density..), fill = "#69b3a2") + annotate("text", x = 1950, y = 0.03, label = "MaleProtegeFirstPubYear",
color = "#69b3a2") + geom_histogram(aes(x = FemaleProtegeFirstPubYear, y = -..density..),
fill = "#404080") + annotate("text", x = 1950, y = -0.03, label = "FemaleProtegeFirstPubYear",
color = "#404080") + xlab("ProtegeFirstPubYear") + ggtitle("Distributions of ProtegeFirstPubYear by gender")
p
```

```
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 34257 rows containing non-finite values (stat_bin).
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 65743 rows containing non-finite values (stat_bin).
```

```
p <- ggplot(data = a, aes(x = x)) + geom_density(aes(x = MaleProtegeFirstPubYear,
y = ..density..), fill = "#69b3a2") + annotate("text", x = 1950, y = 0.03, label = "MaleProtegeFirstPubYear",
color = "#69b3a2") + geom_density(aes(x = FemaleProtegeFirstPubYear, y = -..density..),
fill = "#404080") + annotate("text", x = 1950, y = -0.03, label = "FemaleProtegeFirstPubYear",
color = "#404080") + xlab("ProtegeFirstPubYear") + ggtitle("Distributions of ProtegeFirstPubYear by gender")
p
```

```
## Warning: Removed 34257 rows containing non-finite values
## (stat_density).
## Warning: Removed 65743 rows containing non-finite values
## (stat_density).
```

## 6.1 Problem: ProtegeFirstPubYear time range is very large

in the first 10^{5} lines of this data set, the `ProtegeFirstPubYear`

ranges from 1897 to 2013. It seems that it would be very difficult to
properly compare the impact factors of papers published in
`r`

min(a$ProtegeFirstPubYear)`, well before the advent of team science
and the current deluge of scientific publications, to those published as
recently 2013.

# 7 NumYearsPostMentorship

“The number of years post mentorship: Since our dataset is up to Dec 31st 2019, we are only able to calculate c5—the number of citations accumulated five years post publication—for papers published before

- Thus, given a protege whose first paper was published in year x,
the number of years post mentorship is
`2015 - (x + 6)`

, bearing in mind that the mentorship period is 7 years and we do not include proteges with a gap of 5 years of more in their career history.”

## 7.1 Problem: Error in the equation for NumYearsPostMentorship

Note that the stated equation of `2015 - (x + 6)`

for computing the
number of years post mentorship is not what was used, as instead
`2015 - (x + 2)`

, where `x`

is the year the protege’s paper was first
published, as we see here in the first 10^{5} lines of the input file:

```
all.equal(a$NumYearsPostMentorship, 2015 - (a$ProtegeFirstPubYear + 2))
```

```
## [1] TRUE
```

## 7.2 Distribution of NumYearsPostMentorship

```
summary(a$NumYearsPostMentorship)
```

```
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 7.00 13.00 15.68 21.00 116.00
```

```
ggplot(data = a, mapping = aes(x = NumYearsPostMentorship)) + geom_histogram() +
ggtitle("Distribution of NumYearsPostMentorship")
```

```
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
```

```
a$ProtegeGender <- as.factor(a$Pr0tegeGender)
p <- ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear, y = NumYearsPostMentorship)) +
geom_point() + ggtitle("NumYearsPostMentorship vs. ProtegeFirstPubYear")
ggMarginal(p, type = "histogram")
```

## 7.3 Problem: some values of `NumYearsPostMentorship`

are unrealistically large

In the first 10^{5} lines of the input file of this data set, there are
values of `NumYearsPostMentorship`

as large as 116. These values are
unrealistically large.

# 8 AvgMentorsAcAges

## 8.1 Distribution of AvgMentorsAcAges

“Average academic age of mentors: This is computed for any given protege by first computing the academic age of each mentor in the year of their first publication with the protege, and then averaging these numbers over all the mentors.”

“Given a scientist whose first paper was published in year x, the academic age of this scientist in year y is y-x.”

```
summary(a$AvgMentorsAcAges)
```

```
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 7.00 13.00 16.67 18.18 21.00 213.00
```

```
ggplot(data = a, mapping = aes(x = AvgMentorsAcAges)) + geom_histogram() + ggtitle("Distribution of AvgMentorsAcAges")
```

```
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear, y = AvgMentorsAcAges, col = ProtegeGender)) +
geom_point() + ggtitle("ProtegeFirstPubYear vs. AvgMentorsAcAges")
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear, y = AvgMentorsAcAges)) +
geom_point() + facet_grid(~ProtegeGender) + ggtitle("ProtegeFirstPubYear vs. AvgMentorsAcAges by ProtegeGender")
```

## 8.2 Problem: some `AvgMentorsAcAges`

are unrealistically large

There are `AvgMentorsAcAges`

as large as 213 in the first 10^{5} lines
of this data set. This is unrealistically large.

Among proteges who published their first paper after 2000, there are
`AvgMentorsAcAges`

as large as 213 in this data set. Should we be
evaluating the mentorship effects of mentors who were born than 200
years ago?

# 9 Avg_c5

## 9.1 Distribution of Avg_c5

```
summary(a$Avg_c5)
```

```
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 2.068 6.692 11.557 14.254 1126.429
```

```
ggplot(data = a, mapping = aes(x = Avg_c5)) + geom_histogram() + ggtitle("Distribution of Avg_c5")
```

```
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear, y = Avg_c5, col = ProtegeGender)) +
geom_point() + ggtitle("ProtegeFirstPubYear vs. Avg_c5")
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear, y = Avg_c5)) + geom_point() +
facet_grid(~ProtegeGender) + ggtitle("ProtegeFirstPubYear vs. Avg_c5")
```

## 9.2 Joint distribution of Avg_c5 and AvgMentorsAcAges

```
ggplot(data = a, mapping = aes(y = Avg_c5, x = AvgMentorsAcAges, col = ProtegeGender)) +
geom_point() + ggtitle("Avg_c5 vs. AvgMentorsAcAges")
```

```
ggplot(data = a, mapping = aes(y = Avg_c5, x = AvgMentorsAcAges, col = ProtegeFirstPubYear)) +
geom_point() + scale_color_gradient(low = "red", high = "blue") + facet_grid(~ProtegeGender) +
ggtitle("Avg_c5 vs. AvgMentorsAcAges")
```

# 10 Avg_c10

## 10.1 Distribution of Avg_c10

```
summary(a$Avg_c10)
```

```
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 2.694 9.093 16.945 20.857 3057.000
```

```
ggplot(data = a, mapping = aes(x = Avg_c10)) + geom_histogram() + ggtitle("Distribution of Avg_c10")
```

```
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear, y = Avg_c10, col = ProtegeGender)) +
geom_point() + ggtitle("ProtegeFirstPubYear vs. Avg_c10")
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear, y = Avg_c10)) + geom_point() +
facet_grid(~ProtegeGender) + ggtitle("ProtegeFirstPubYear vs. Avg_c10")
```

## 10.2 Problem with Avg_c10: Cannot compute a value Avg_c10 for recent publications

As the dataset is up to Dec 31st 2019, how can one compute a valid Avg_c10 for someone whose first publication year was 2012 or 2013?

```
a %>% filter(ProtegeFirstPubYear == max(ProtegeFirstPubYear) - 1) %>% select(ProtegeFirstPubYear,
Avg_c5, Avg_c10) %>% head(20)
```

```
## # A tibble: 20 x 3
## ProtegeFirstPubYear Avg_c5 Avg_c10
## <dbl> <dbl> <dbl>
## 1 2012 0 0
## 2 2012 0 0
## 3 2012 0 0
## 4 2012 0.5 0.5
## 5 2012 0.5 0.5
## 6 2012 0 0
## 7 2012 0.5 0.5
## 8 2012 0.5 0.5
## 9 2012 0 0
## 10 2012 0.182 0.182
## 11 2012 0.182 0.182
## 12 2012 0.182 0.182
## 13 2012 0.2 0.2
## 14 2012 0 0
## 15 2012 0 0
## 16 2012 0 0
## 17 2012 0 0
## 18 2012 0 0
## 19 2012 0 0
## 20 2012 0 0
```

# 11 Avg_c5 vs Avg_c10

## 11.1 Tables of Avg_c5 and Avg_c10

```
my_controls <- tableby.control(test = T, total = T, numeric.stats = c("meansd", "medianq1q3",
"range", "Nmiss2"), cat.stats = c("countpct", "Nmiss2"), stats.labels = list(meansd = "Mean (SD)",
medianq1q3 = "Median (Q1, Q3)", range = "Min - Max", Nmiss2 = "Missing"))
my_controls2 <- tableby.control(numeric.stats = c("medianq1q3"), stats.labels = list(medianq1q3 = "Median (Q1, Q3)"))
t.test(Avg_c5 ~ ProtegeGender, data = a)
```

```
##
## Welch Two Sample t-test
##
## data: Avg_c5 by ProtegeGender
## t = 4.0045, df = 69256, p-value = 6.22e-05
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 0.3010699 0.8783127
## sample estimates:
## mean in group female mean in group male
## 11.94469 11.35500
```

```
t.test(Avg_c10 ~ ProtegeGender, data = a)
```

```
##
## Welch Two Sample t-test
##
## data: Avg_c10 by ProtegeGender
## t = 2.6735, df = 69586, p-value = 0.007508
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 0.1643062 1.0669714
## sample estimates:
## mean in group female mean in group male
## 17.34958 16.73394
```

```
t1 <- tableby(ProtegeGender ~ ., data = a %>% select(ProtegeGender, Avg_c5, Avg_c10))
```

```
summary(t1, title = "Table of Avg_c5 and Avg_c10 by ProtegeGender")
```

female (N=34257) | male (N=65743) | Total (N=100000) | p value | |
---|---|---|---|---|

Avg_c5 |
< 0.001 | |||

Mean (SD) | 11.945 (22.121) | 11.355 (22.056) | 11.557 (22.080) | |

Range | 0.000 - 1076.000 | 0.000 - 1126.429 | 0.000 - 1126.429 | |

Avg_c10 |
0.008 | |||

Mean (SD) | 17.350 (34.528) | 16.734 (34.614) | 16.945 (34.586) | |

Range | 0.000 - 2128.000 | 0.000 - 3057.000 | 0.000 - 3057.000 |

Table of Avg_c5 and Avg_c10 by ProtegeGender

```
t1 <- tableby(ProtegeGender ~ ., data = a %>% select(ProtegeGender, Avg_c5, Avg_c10),
control = my_controls2)
```

```
summary(t1, title = "Table of Avg_c5 and Avg_c10 by ProtegeGender")
```

female (N=34257) | male (N=65743) | Total (N=100000) | p value | |
---|---|---|---|---|

Avg_c5 |
< 0.001 | |||

Median (Q1, Q3) | 7.000 (2.000, 15.000) | 6.565 (2.182, 13.969) | 6.692 (2.068, 14.254) | |

Avg_c10 |
0.008 | |||

Median (Q1, Q3) | 9.000 (2.286, 21.510) | 9.111 (2.935, 20.425) | 9.093 (2.694, 20.857) |

Table of Avg_c5 and Avg_c10 by ProtegeGender

```
t1 <- tableby(ProtegeGender ~ ., data = a %>% select(ProtegeGender, Avg_c5, Avg_c10),
control = my_controls)
```

```
summary(t1, title = "Table of Avg_c5 and Avg_c10 by ProtegeGender")
```

female (N=34257) | male (N=65743) | Total (N=100000) | p value | |
---|---|---|---|---|

Avg_c5 |
< 0.001 | |||

Mean (SD) | 11.945 (22.121) | 11.355 (22.056) | 11.557 (22.080) | |

Median (Q1, Q3) | 7.000 (2.000, 15.000) | 6.565 (2.182, 13.969) | 6.692 (2.068, 14.254) | |

Min - Max | 0.000 - 1076.000 | 0.000 - 1126.429 | 0.000 - 1126.429 | |

Missing | 0 | 0 | 0 | |

Avg_c10 |
0.008 | |||

Mean (SD) | 17.350 (34.528) | 16.734 (34.614) | 16.945 (34.586) | |

Median (Q1, Q3) | 9.000 (2.286, 21.510) | 9.111 (2.935, 20.425) | 9.093 (2.694, 20.857) | |

Min - Max | 0.000 - 2128.000 | 0.000 - 3057.000 | 0.000 - 3057.000 | |

Missing | 0 | 0 | 0 |

Table of Avg_c5 and Avg_c10 by ProtegeGender

## 11.2 Joint distribution of Avg_c5 and Avg_c10

```
ggplot(data = a, mapping = aes(x = Avg_c5, y = Avg_c10, col = ProtegeGender)) + geom_point() +
geom_abline(intercept = 0, slope = 1, col = "red") + ggtitle("Avg_c5 vs. Avg_c10")
```

```
ggplot(data = a, mapping = aes(x = Avg_c5, y = Avg_c10, col = ProtegeFirstPubYear)) +
geom_point() + scale_color_gradient(low = "red", high = "blue") + geom_abline(intercept = 0,
slope = 1, col = "red") + facet_grid(~ProtegeGender) + ggtitle("Avg_c5 vs. Avg_c10")
```

# 12 numMentors

## 12.1 Distribution of numMentors

```
summary(a$numMentors)
```

```
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.000 1.000 3.000 4.514 6.000 91.000
```

```
ggplot(data = a, mapping = aes(x = numMentors)) + geom_histogram() + ggtitle("Distribution of numMentors")
```

```
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear, y = numMentors, col = ProtegeGender)) +
geom_point() + ggtitle("ProtegeFirstPubYear vs. numMentors")
```

```
ggplot(data = a, mapping = aes(x = ProtegeFirstPubYear, y = numMentors)) + geom_point() +
facet_grid(~ProtegeGender) + ggtitle("ProtegeFirstPubYear vs. numMentors")
```

## 12.2 Problem: some `numMentors`

values are too large

How could someone possibly really have more than a handful of mentors?

In the first 10^{5} lines of this data set, there are individuals with 91 mentors!

The Supplement states that:

“Whenever a junior scientist publishes a paper with a senior scientist, we consider the former to be a protege, and the latter to be a mentor, as long as they authored at least one paper with 20 or less co-authors and share the same discipline and US-based affiliation.”

Oh, but we are really measuring co-authorship at the same US-based affiliation on joint papers with 20 or less co-authors.

# 13 Summary

Here I examine the data provided by the authors of this paper:

AlShebli B, Makovi K, Rahwan T. The association between early career informal mentorship in academic collaborations and junior author performance. Nat Commun. 2020 Nov 17;11(1):5855. doi: 10.1038/s41467-020-19723-8. PMID: 33203848. https://pubmed.ncbi.nlm.nih.gov/33203848/

For speed, I examined only the first 10^{5} lines of the data file Mentorship/Repository_Data/Data_7yearcutoff.csv from the ‘bedoor/Mentorship’ GitHub repository at

https://github.com/bedoor/Mentorship

Their repository is described by the authors as:

‘This repository includes all data used in “The Association between Early Career Informal Mentorship in Academic Collaborations and Junior Author Performance”.’

## 13.1 Problem: No gender information for mentors

There does not appear to be any information in the provided file about the mentor’s gender, so the provided data do not appear to be ‘all the data’.

## 13.2 Problem: ProtegeFirstPubYear time range is very large

In the first 10^{5} lines of this data set, the `ProtegeFirstPubYear`

ranges from 1897 to 2013. It seems that it would be very difficult to
properly compare the impact factors of papers published in 1897, well
before the advent of team science and the current deluge of scientific
publications, to those published as recently 2013.

## 13.3 Problem: Error in the equation for NumYearsPostMentorship

Note that the stated equation of `2015 - (x + 6)`

for computing the
number of years post mentorship is not what was used, as instead
`2015 - (x + 2)`

, where `x`

is the year the protege’s paper was first
published.

## 13.4 Problem: some values of `NumYearsPostMentorship`

are unrealistically large

In the first 10^{5} lines of the input file of this data set, there are
values of `NumYearsPostMentorship`

as large as 116. These values are
unrealistically large.

## 13.5 Problem: some `AvgMentorsAcAges`

are unrealistically large

There are `AvgMentorsAcAges`

as large as 213 in the first 10^{5} lines
of this data set. This is unrealistically large.

Among proteges who published their first paper after 2000, there are
`AvgMentorsAcAges`

as large as 213 in this data set. Should we be
evaluating the mentorship effects of mentors who were born than 200
years ago?

## 13.6 Problem with Avg_c10: Cannot compute a value `Avg_c10`

for recent publications

As the dataset is up to Dec 31st 2019, how can one compute a valid
`Avg_c10`

for someone whose first publication year was 2012 or 2013?

## 13.7 Problem: some `numMentors`

values are too large

How could someone possibly really have more than a handful of mentors?

In the first 10^{5} lines of this data set, there are individuals with 91 mentors!

The Supplement states that:

“Whenever a junior scientist publishes a paper with a senior scientist, we consider the former to be a protege, and the latter to be a mentor, as long as they authored at least one paper with 20 or less co-authors and share the same discipline and US-based affiliation.”

Oh, but we are really measuring **co-authorship** at the same US-based
affiliation on joint papers with 20 or less co-authors.

# 14 Generating GitHub Markdown

```
library(rmarkdown)
library(here)
finalize <- function() {
rmd <- here("mentorship.Rmd")
rmarkdown::render(rmd, "github_document")
}
```

# 15 Session Information

```
sessionInfo()
```

```
## R version 4.0.2 (2020-06-22)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS High Sierra 10.13.6
##
## Matrix products: default
## BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods
## [7] base
##
## other attached packages:
## [1] here_0.1 rmarkdown_2.5 arsenal_3.4.0 ggExtra_0.9
## [5] forcats_0.5.0 stringr_1.4.0 dplyr_1.0.0 purrr_0.3.4
## [9] readr_1.3.1 tidyr_1.1.2 tibble_3.0.1 ggplot2_3.3.0
## [13] tidyverse_1.3.0 knitr_1.30
##
## loaded via a namespace (and not attached):
## [1] Rcpp_1.0.4.6 lubridate_1.7.8 lattice_0.20-41
## [4] utf8_1.1.4 rprojroot_1.3-2 assertthat_0.2.1
## [7] digest_0.6.25 mime_0.9 R6_2.4.1
## [10] cellranger_1.1.0 backports_1.1.7 reprex_0.3.0
## [13] evaluate_0.14 highr_0.8 httr_1.4.2
## [16] pillar_1.4.4 rlang_0.4.6 readxl_1.3.1
## [19] rstudioapi_0.11 miniUI_0.1.1.1 Matrix_1.2-18
## [22] splines_4.0.2 labeling_0.3 munsell_0.5.0
## [25] shiny_1.5.0 broom_0.5.6 compiler_4.0.2
## [28] httpuv_1.5.4 modelr_0.1.7 xfun_0.17
## [31] pkgconfig_2.0.3 htmltools_0.5.0 tidyselect_1.1.0
## [34] fansi_0.4.1 crayon_1.3.4 dbplyr_1.4.3
## [37] withr_2.2.0 later_1.0.0 grid_4.0.2
## [40] nlme_3.1-148 jsonlite_1.6.1 xtable_1.8-4
## [43] gtable_0.3.0 lifecycle_0.2.0 DBI_1.1.0
## [46] formatR_1.7 magrittr_1.5 scales_1.1.1
## [49] cli_2.0.2 stringi_1.4.6 farver_2.0.3
## [52] fs_1.4.1 promises_1.1.0 xml2_1.3.2
## [55] ellipsis_0.3.1 generics_0.0.2 vctrs_0.3.1
## [58] tools_4.0.2 glue_1.4.1 hms_0.5.3
## [61] survival_3.1-12 fastmap_1.0.1 yaml_2.2.1
## [64] colorspace_1.4-1 rvest_0.3.5 haven_2.2.0
```