This lab journal replicates table 1.
fpackage.check
: Check if packages are installed (and
install if not) in R (source).rm(list = ls())
fpackage.check <- function(packages) {
lapply(packages, FUN = function(x) {
if (!require(x, character.only = TRUE)) {
install.packages(x, dependencies = TRUE)
library(x, character.only = TRUE)
}
})
}
tidyverse
: tidy data manipulationskableExtra
: creating tables in consistent
formattingpackages = c("tidyverse", "kableExtra")
fpackage.check(packages)
We use one processed dataset.
df_starting
load(file = "./data/processed/df_starting.rda")
Descriptives
columns <- c("Min", "Max", "Mean", "SD")
rows <- c("Gender", "Man", "Woman", "Missing", "Ethnicity", "Ethnic majority", "Ethnic minority", "Caribbean",
"Turkish", "Moroccan", "Other", "University", "Erasmus University", "Leiden University", "Radboud University",
"University of Groningen", "Delft University of Technology", "Eindhoven University of Technology",
"Tilburg University", "Maastricht University", "University of Twente", "Utrecht University", "University of Amsterdam",
"Vrije Universiteit Amsterdam", "Wageningen University and Research Centre", "<strong>PhD Cohort</strong></p>",
"<strong>Starting to publish</strong></p>", "Source: Dutch Doctoral Recipients (D-cubed) data 1990-2019")
t1 <- data.frame(matrix(nrow = length(rows), ncol = length(columns)))
colnames(t1) <- columns
rownames(t1) <- rows
t1[c(2:4), 3] <- prop.table(table(df_starting$gender))[1:3] # gender
t1[c(6, 7, 11), 3] <- prop.table(table(df_starting$ethnicity2))[1:3] # ethnicity
t1[c(8:10), 3] <- prop.table(table(df_starting$ethnicity))[2:4] # specific ethnic groups
t1[c(13:25), 3] <- prop.table(table(df_starting$uni))[1:13] # university of doctorate
t1[26, c(1:3)] <- as.numeric(summary(df_starting$phd_cohort)[c(1, 6, 4)]) # phd cohort
t1[26, 4] <- sd(df_starting$phd_cohort) # se phd cohort
t1[27, 3] <- prop.table(table(df_starting$start_pub))[2] # starting to publish
t1[c(2:4, 6:11, 13:25, 27), c(1, 2)] <- c(rep(0, times = 23), rep(1, times = 23)) # binary variables min/max
t1[c(2:4, 6:11, 13:27), 3] <- format(round(t1[c(2:4, 6:11, 13:27), 3], 2), nsmall = 2) # rounding to 2 decimals
t1[26, c(1, 2, 4)] <- format(round(t1[26, c(1, 2, 4)], 2), nsmall = 2) # rounding
t1[is.na(t1)] <- ""
t1 %>%
kable(format = "html", caption = "<b>Table 1.</b> Descriptive statistics for analyses `starting to publish` (N=85,788)",
escape = FALSE) %>%
row_spec(row = 28, italic = T) %>%
row_spec(row = c(1, 5, 12), bold = T) %>%
kable_classic(full_width = F, html_font = "Cambria") %>%
add_indent(c(6, 7, 11), level_of_indent = 1) %>%
add_indent(c(8, 9, 10), level_of_indent = 2) %>%
kable_styling(font_size = 14) -> table1
table1
Min | Max | Mean | SD | |
---|---|---|---|---|
Gender | ||||
Man | 0 | 1 | 0.38 | |
Woman | 0 | 1 | 0.29 | |
Missing | 0 | 1 | 0.33 | |
Ethnicity | ||||
Ethnic majority | 0 | 1 | 0.62 | |
Ethnic minority | 0 | 1 | 0.02 | |
Caribbean | 0 | 1 | 0.01 | |
Turkish | 0 | 1 | 0.01 | |
Moroccan | 0 | 1 | 0.01 | |
Other | 0 | 1 | 0.36 | |
University | ||||
Erasmus University | 0 | 1 | 0.07 | |
Leiden University | 0 | 1 | 0.06 | |
Radboud University | 0 | 1 | 0.09 | |
University of Groningen | 0 | 1 | 0.12 | |
Delft University of Technology | 0 | 1 | 0.08 | |
Eindhoven University of Technology | 0 | 1 | 0.09 | |
Tilburg University | 0 | 1 | 0.03 | |
Maastricht University | 0 | 1 | 0.06 | |
University of Twente | 0 | 1 | 0.06 | |
Utrecht University | 0 | 1 | 0.09 | |
University of Amsterdam | 0 | 1 | 0.12 | |
Vrije Universiteit Amsterdam | 0 | 1 | 0.08 | |
Wageningen University and Research Centre | 0 | 1 | 0.07 | |
PhD Cohort | 0.00 | 29.00 | 18.39 | 7.87 |
Starting to publish | 0 | 1 | 0.18 | |
Source: Dutch Doctoral Recipients (D-cubed) data 1990-2019 |
t1 <- data.frame(lapply(t1, function(x) {
gsub("\\.", ",", x)
}))
write.csv(t1, file = "C://DDR/tab1.csv")
Copyright © 2023