├── .gitignore ├── Makefile ├── README.Rmd ├── README.md ├── README_cache └── markdown_github │ ├── __packages │ ├── authorgender_8f436ed1426489462361040096c4412d.RData │ ├── authorgender_8f436ed1426489462361040096c4412d.rdb │ ├── authorgender_8f436ed1426489462361040096c4412d.rdx │ ├── authornetwork_981f0de20875aa331251599706e72215.RData │ ├── authornetwork_981f0de20875aa331251599706e72215.rdb │ ├── authornetwork_981f0de20875aa331251599706e72215.rdx │ ├── authors_bd3938e50fde0f6b774b06cb284d2355.RData │ ├── authors_bd3938e50fde0f6b774b06cb284d2355.rdb │ ├── authors_bd3938e50fde0f6b774b06cb284d2355.rdx │ ├── between_d849ed424de8d7af6716a345a84dc7c3.RData │ ├── between_d849ed424de8d7af6716a345a84dc7c3.rdb │ ├── between_d849ed424de8d7af6716a345a84dc7c3.rdx │ ├── bibtype_bc71da4e681ee7b4e6d0cb14ccc9e8c7.RData │ ├── bibtype_bc71da4e681ee7b4e6d0cb14ccc9e8c7.rdb │ ├── bibtype_bc71da4e681ee7b4e6d0cb14ccc9e8c7.rdx │ ├── data_e2390b075e9ff3de98ce9dd1e2862c7d.RData │ ├── data_e2390b075e9ff3de98ce9dd1e2862c7d.rdb │ ├── data_e2390b075e9ff3de98ce9dd1e2862c7d.rdx │ ├── journal_7be42f655105611373a5badf4ef34541.RData │ ├── journal_7be42f655105611373a5badf4ef34541.rdb │ ├── journal_7be42f655105611373a5badf4ef34541.rdx │ ├── missingness_articles_3483e373851a8aab21b82c236d5d40ed.RData │ ├── missingness_articles_3483e373851a8aab21b82c236d5d40ed.rdb │ ├── missingness_articles_3483e373851a8aab21b82c236d5d40ed.rdx │ ├── missingness_books_793f5c222e66d24229907f0d3066882b.RData │ ├── missingness_books_793f5c222e66d24229907f0d3066882b.rdb │ ├── missingness_books_793f5c222e66d24229907f0d3066882b.rdx │ ├── nauthors_e73f84d9904d997e745e7a57b3da9109.RData │ ├── nauthors_e73f84d9904d997e745e7a57b3da9109.rdb │ ├── nauthors_e73f84d9904d997e745e7a57b3da9109.rdx │ ├── publisher_ada8d177db0375b9bc30def941253a89.RData │ ├── publisher_ada8d177db0375b9bc30def941253a89.rdb │ ├── publisher_ada8d177db0375b9bc30def941253a89.rdx │ ├── teamgender_6355380f713488f710792eb7f126f51e.RData │ ├── teamgender_6355380f713488f710792eb7f126f51e.rdb │ ├── teamgender_6355380f713488f710792eb7f126f51e.rdx │ ├── unnamed-chunk-1_864902b4f8948078f0e758be758c7e9e.RData │ ├── unnamed-chunk-1_864902b4f8948078f0e758be758c7e9e.rdb │ ├── unnamed-chunk-1_864902b4f8948078f0e758be758c7e9e.rdx │ ├── year_1ab75c0455b5256efa8cc6c70b9ff6e2.RData │ ├── year_1ab75c0455b5256efa8cc6c70b9ff6e2.rdb │ └── year_1ab75c0455b5256efa8cc6c70b9ff6e2.rdx ├── README_files └── figure-markdown_github │ ├── authorgender-1.png │ ├── authornetwork-1.png │ ├── authors-1.png │ ├── between-1.png │ ├── bibtype-1.png │ ├── journal-1.png │ ├── missingness_articles-1.png │ ├── missingness_books-1.png │ ├── nauthors-1.png │ ├── publisher-1.png │ ├── teamgender-1.png │ └── year-1.png ├── TODO.txt └── references.bib /.gitignore: -------------------------------------------------------------------------------- 1 | *.pdf 2 | *.htm 3 | *.html 4 | *.URL 5 | *.doc 6 | *.docx 7 | *.bib.bak 8 | *.bib.sav 9 | *.zip 10 | toadd.bib 11 | /toadd 12 | /cache 13 | /figure 14 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all: README.html 2 | 3 | README.md: README.Rmd references.bib 4 | Rscript -e "rmarkdown::render('README.Rmd')" 5 | 6 | README.html: README.md 7 | pandoc -o README.html README.md 8 | -------------------------------------------------------------------------------- /README.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "My BibTeX database" 3 | author: "Thomas J. Leeper" 4 | output: 5 | md_document: 6 | variant: markdown_github 7 | --- 8 | 9 | ```{r setup, results="hide"} 10 | # knitr 11 | library("knitr") 12 | opts_chunk$set(fig.width=8, fig.height=5, cache=TRUE) 13 | 14 | # ggplot 15 | library("ggplot2") 16 | theme_set(theme_minimal()) 17 | update_geom_defaults("bar", list(fill = "black")) 18 | update_geom_defaults("line", list(colour = "red")) 19 | update_geom_defaults("line", list(fill = "black", colour = "black")) 20 | 21 | # other packages 22 | requireNamespace("bib2df", quietly = TRUE) 23 | requireNamespace("igraph", quietly = TRUE) 24 | requireNamespace("gender", quietly = TRUE) 25 | requireNamespace("ggraph", quietly = TRUE) 26 | ```` 27 | 28 | License: Public Domain (CC-0) 29 | 30 | This is the bibtex (.bib) file containing all of my bibliographic references. Figured I'd share it publicly. 31 | 32 | This README was last updated on `r Sys.Date()`. 33 | 34 | ```{r data} 35 | dat <- suppressWarnings(bib2df::bib2df("references.bib")) 36 | suppressWarnings(dat[["YEAR"]] <- as.numeric(dat[["YEAR"]])) 37 | ``` 38 | 39 | The database contains `r nrow(dat)` references. What follows are some basic statistics on its contents. 40 | 41 | 42 | ## Citation Types 43 | 44 | Reference types in the database: 45 | 46 | ```{r bibtype, dependson=c("data")} 47 | dat$CATEGORY <- factor(dat$CATEGORY, levels = names(sort(table(dat$CATEGORY)))) 48 | ggplot(dat[!is.na(dat$CATEGORY),], aes(x = CATEGORY)) + 49 | geom_bar() + 50 | xlab("Count") + 51 | ylab("Citation Type") + 52 | coord_flip() 53 | ``` 54 | 55 | ## Journals 56 | 57 | Most common 50 journals: 58 | 59 | ```{r journal, dependson=c("data"), fig.height = 8} 60 | dat$JOURNAL[is.na(dat$JOURNAL)] <- dat$JOURNALTITLE[is.na(dat$JOURNAL)] 61 | topjournals <- aggregate(CATEGORY ~ JOURNAL, data = dat, FUN = length) 62 | topjournals <- head(topjournals[order(topjournals$CATEGORY, decreasing = TRUE), ], 50) 63 | topjournals$JOURNAL <- factor(topjournals$JOURNAL, levels = rev(topjournals$JOURNAL)) 64 | ggplot(topjournals, aes(x = JOURNAL, y = CATEGORY)) + 65 | geom_bar(stat = "identity") + 66 | ylab("Count") + 67 | xlab("Journal") + 68 | coord_flip() 69 | ``` 70 | 71 | ## Book Publishers 72 | 73 | Most common 25 journals: 74 | 75 | ```{r publisher, dependson=c("data"), fig.height = 6} 76 | toppublishers <- aggregate(CATEGORY ~ PUBLISHER, data = dat[dat$CATEGORY == "BOOK",], FUN = length) 77 | toppublishers <- head(toppublishers[order(toppublishers$CATEGORY, decreasing = TRUE), ], 25) 78 | toppublishers$PUBLISHER <- factor(toppublishers$PUBLISHER, levels = rev(toppublishers$PUBLISHER)) 79 | ggplot(toppublishers, aes(x = PUBLISHER, y = CATEGORY)) + 80 | geom_bar(stat = "identity") + 81 | ylab("Count") + 82 | xlab("Publisher") + 83 | coord_flip() 84 | ``` 85 | 86 | 87 | ## Authors 88 | 89 | Number of coauthors per publication (excluding some recent extreme outliers): 90 | 91 | ```{r nauthors, dependson=c("data")} 92 | dat$nauthors <- lengths(dat$AUTHOR) 93 | ggplot(dat[!is.na(dat$YEAR) & dat$YEAR > 1900 & dat$nauthors < 40, ], aes(x = YEAR, y = nauthors)) + 94 | geom_point(alpha=0.1, fill="black", colour="black") + 95 | geom_smooth(method = "gam", colour = "red") + 96 | xlab("Publication Year") + 97 | ylab("Coauthors per Publication") 98 | ``` 99 | 100 | Most common 50 authors: 101 | 102 | ```{r authors, dependson=c("data"), fig.height = 8} 103 | aut <- unlist(dat$AUTHOR) 104 | topaut <- as.data.frame(head(sort(table(aut), decreasing = TRUE), 150)) 105 | topaut$aut <- factor(topaut$aut, levels = rev(topaut$aut)) 106 | ggplot(topaut[1:50, ], aes(x = aut, y = Freq)) + 107 | geom_bar(stat = "identity") + 108 | ylab("Count") + 109 | xlab("Author Name") + 110 | coord_flip() 111 | ``` 112 | 113 | ## Gender of authors 114 | 115 | The overall breakdown of author genders (counting each author only once) is as follows: 116 | 117 | ```{r authorgender, dependson=c("data"), fig.height=2} 118 | pull_first_names <- function(x) { 119 | x <- unlist(regmatches(as.character(x), regexec("(?<=, )[A-Za-z]+(?=([., ]{1}|$))", as.character(x), perl = TRUE))) 120 | x[x != ""] 121 | } 122 | first_names <- pull_first_names(unique(as.character(unlist(dat$AUTHOR)))) 123 | author_genders <- gender::gender(unlist(first_names)) 124 | 125 | ggplot(author_genders[, "gender", drop = FALSE], aes(x = "", fill = gender)) + 126 | geom_bar(aes(y = (..count..)/sum(..count..)), width = 1, position = "dodge") + 127 | scale_fill_manual(limits = c("male", "female"), values = c("gray", "black")) + 128 | scale_y_continuous(breaks = seq(0,1,by=0.1), labels = scales::percent) + 129 | coord_flip() + 130 | xlab("") + 131 | ylab("") + 132 | theme(legend.position = "bottom") 133 | ``` 134 | 135 | ```{r teamgender, dependson=c("data", "authorgender"), fig.height=2} 136 | team_genders <- unlist(lapply(dat$AUTHOR, function(x) { 137 | firsts <- pull_first_names(as.character(x)) 138 | u <- author_genders$gender[match(firsts[firsts != ""], author_genders$name)] 139 | if (!length(u) || is.na(u)) { 140 | "Ambiguous" 141 | } else if (length(u) == 1 && u == "male") { 142 | "Male Solo" 143 | } else if (length(u) == 1 && u == "female") { 144 | "Female Solo" 145 | } else if (all(u %in% "male")) { 146 | "Male Team" 147 | } else if (all(u %in% "female")) { 148 | "Female Team" 149 | } else { 150 | "Male-Female Team" 151 | } 152 | })) 153 | team_genders_df <- table(factor(team_genders, rev(c("Male-Female Team", "Male Solo", "Female Solo", "Male Team", "Female Team", "Ambiguous")))) 154 | ggplot(data.frame(team_genders_df), aes(x = Var1, y = Freq)) + 155 | geom_bar(width = 1, position = "dodge", stat = "identity") + 156 | coord_flip() + 157 | xlab("") + 158 | ylab("") 159 | ``` 160 | 161 | Caveat: The above is based upon [the gender package](https://cran.r-project.org/package=gender), which classifies first names based upon historical data. This is not necessarily accurate and is restricted to a binary classification. It also uses all historical data provided in the package and is based only on United States data, making it possibly inaccurate for any given individual in the dataset. 162 | 163 | ## Coauthorship 164 | 165 | Coauthorship network among most common 150 authors: 166 | 167 | ```{r authornetwork, dependson=c("data"), fig.height=10} 168 | # get all coauthor pairs 169 | colist <- lapply(dat$AUTHOR, function(x) if (length(x) >= 2) combn(x, m = 2) else NA_character_) 170 | # convert networks of top coauthors to igraph object 171 | codat <- na.omit(data.frame(t(do.call("cbind", colist)))) 172 | codat$N <- 1L 173 | # make coauthor graph from top coauthors 174 | topco <- aggregate(N ~ X1 + X2, data = codat[codat$X1 %in% topaut$aut & codat$X2 %in% topaut$aut, ], FUN = sum) 175 | cograph <- igraph::graph_from_data_frame(topco, directed = FALSE) 176 | 177 | ## ggraph 178 | ggraph::ggraph(cograph, "igraph", algorithm = "nicely") + 179 | ggraph::geom_edge_link(aes(edge_width = log(N)), colour = "gray") + 180 | ggraph::geom_node_text(aes(label = name), fontface = 1, size = 2) + 181 | theme_void() 182 | ``` 183 | 184 | Another, more interactive way of doing this might be: 185 | 186 | ```{r eval=FALSE, dependson=c("data", "authornetwork")} 187 | networkD3::simpleNetwork(topco) 188 | d3 <- networkD3::igraph_to_networkD3(cograph) 189 | d3$nodes$group <- 1L 190 | networkD3::forceNetwork(Links = d3$links, Nodes = d3$nodes, NodeID = "name", Group = "group") 191 | ``` 192 | 193 | Betweenness centrality of top 25 authors: 194 | 195 | ```{r between, dependson=c("data", "authornetwork")} 196 | between <- igraph::betweenness(cograph) 197 | topcoaut <- na.omit(data.frame(betweenness = head(sort(between, decreasing = TRUE), 30))) 198 | topcoaut$aut <- factor(rownames(topcoaut), levels = rev(rownames(topcoaut))) 199 | ggplot(topcoaut, aes(x = aut, y = betweenness)) + 200 | geom_bar(stat = "identity") + 201 | ylab("Network Betweenness") + 202 | xlab("Author Name") + 203 | coord_flip() 204 | ``` 205 | 206 | ## Publication Years 207 | 208 | Years of publication (post-1950): 209 | 210 | ```{r year, dependson=c("data"), fig.height=4} 211 | ggplot(dat[!is.na(dat$YEAR) & dat$YEAR > 1950, ], aes(x = YEAR)) + 212 | geom_bar() + 213 | xlab("Publication Year") + 214 | ylab("Count") 215 | ``` 216 | 217 | ## Data missingness 218 | 219 | Proportion missing data, by field, for articles: 220 | 221 | ```{r missingness_articles, dependson=c("data"), fig.height=3} 222 | articles <- dat[dat$CATEGORY == "ARTICLE", c("AUTHOR", "TITLE", "JOURNAL", "YEAR", "VOLUME", "NUMBER", "PAGES", "ABSTRACT", "DOI")] 223 | articles <- cbind.data.frame(FIELD = names(articles), MISSINGNESS = unlist(lapply(articles, function(x) sum(is.na(x) == TRUE)/length(x)))) 224 | ggplot(articles, aes(x = FIELD, y = MISSINGNESS)) + 225 | geom_bar(stat = "identity", fill = "darkgray") + 226 | ylab("Proportion Missing") + 227 | ylim(c(0,1)) + 228 | xlab("") + 229 | coord_flip() 230 | ``` 231 | 232 | Proportion missing data, by field, for books: 233 | 234 | ```{r missingness_books, dependson=c("data"), fig.height=3} 235 | books <- dat[dat$CATEGORY == "BOOK", c("AUTHOR", "EDITOR", "TITLE", "PUBLISHER", "YEAR", "ADDRESS", "ISBN")] 236 | books <- cbind.data.frame(FIELD = names(books), MISSINGNESS = unlist(lapply(books, function(x) sum(is.na(x) == TRUE)/length(x)))) 237 | ggplot(books, aes(x = FIELD, y = MISSINGNESS)) + 238 | geom_bar(stat = "identity", fill = "darkgray") + 239 | ylab("Proportion Missing") + 240 | ylim(c(0,1)) + 241 | xlab("") + 242 | coord_flip() 243 | ``` 244 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ``` r 2 | # knitr 3 | library("knitr") 4 | opts_chunk$set(fig.width=8, fig.height=5, cache=TRUE) 5 | 6 | # ggplot 7 | library("ggplot2") 8 | theme_set(theme_minimal()) 9 | update_geom_defaults("bar", list(fill = "black")) 10 | update_geom_defaults("line", list(colour = "red")) 11 | update_geom_defaults("line", list(fill = "black", colour = "black")) 12 | 13 | # other packages 14 | requireNamespace("bib2df", quietly = TRUE) 15 | requireNamespace("igraph", quietly = TRUE) 16 | requireNamespace("gender", quietly = TRUE) 17 | requireNamespace("ggraph", quietly = TRUE) 18 | ``` 19 | 20 | License: Public Domain (CC-0) 21 | 22 | This is the bibtex (.bib) file containing all of my bibliographic 23 | references. Figured I’d share it publicly. 24 | 25 | This README was last updated on 2019-11-17. 26 | 27 | ``` r 28 | dat <- suppressWarnings(bib2df::bib2df("references.bib")) 29 | ``` 30 | 31 | ## Column `YEAR` contains character strings. 32 | ## No coercion to numeric applied. 33 | 34 | ``` r 35 | suppressWarnings(dat[["YEAR"]] <- as.numeric(dat[["YEAR"]])) 36 | ``` 37 | 38 | The database contains 4209 references. What follows are some basic 39 | statistics on its contents. 40 | 41 | Citation Types 42 | -------------- 43 | 44 | Reference types in the database: 45 | 46 | ``` r 47 | dat$CATEGORY <- factor(dat$CATEGORY, levels = names(sort(table(dat$CATEGORY)))) 48 | ggplot(dat[!is.na(dat$CATEGORY),], aes(x = CATEGORY)) + 49 | geom_bar() + 50 | xlab("Count") + 51 | ylab("Citation Type") + 52 | coord_flip() 53 | ``` 54 | 55 | ![](README_files/figure-markdown_github/bibtype-1.png) 56 | 57 | Journals 58 | -------- 59 | 60 | Most common 50 journals: 61 | 62 | ``` r 63 | dat$JOURNAL[is.na(dat$JOURNAL)] <- dat$JOURNALTITLE[is.na(dat$JOURNAL)] 64 | topjournals <- aggregate(CATEGORY ~ JOURNAL, data = dat, FUN = length) 65 | topjournals <- head(topjournals[order(topjournals$CATEGORY, decreasing = TRUE), ], 50) 66 | topjournals$JOURNAL <- factor(topjournals$JOURNAL, levels = rev(topjournals$JOURNAL)) 67 | ggplot(topjournals, aes(x = JOURNAL, y = CATEGORY)) + 68 | geom_bar(stat = "identity") + 69 | ylab("Count") + 70 | xlab("Journal") + 71 | coord_flip() 72 | ``` 73 | 74 | ![](README_files/figure-markdown_github/journal-1.png) 75 | 76 | Book Publishers 77 | --------------- 78 | 79 | Most common 25 journals: 80 | 81 | ``` r 82 | toppublishers <- aggregate(CATEGORY ~ PUBLISHER, data = dat[dat$CATEGORY == "BOOK",], FUN = length) 83 | toppublishers <- head(toppublishers[order(toppublishers$CATEGORY, decreasing = TRUE), ], 25) 84 | toppublishers$PUBLISHER <- factor(toppublishers$PUBLISHER, levels = rev(toppublishers$PUBLISHER)) 85 | ggplot(toppublishers, aes(x = PUBLISHER, y = CATEGORY)) + 86 | geom_bar(stat = "identity") + 87 | ylab("Count") + 88 | xlab("Publisher") + 89 | coord_flip() 90 | ``` 91 | 92 | ![](README_files/figure-markdown_github/publisher-1.png) 93 | 94 | Authors 95 | ------- 96 | 97 | Number of coauthors per publication (excluding some recent extreme 98 | outliers): 99 | 100 | ``` r 101 | dat$nauthors <- lengths(dat$AUTHOR) 102 | ggplot(dat[!is.na(dat$YEAR) & dat$YEAR > 1900 & dat$nauthors < 40, ], aes(x = YEAR, y = nauthors)) + 103 | geom_point(alpha=0.1, fill="black", colour="black") + 104 | geom_smooth(method = "gam", colour = "red") + 105 | xlab("Publication Year") + 106 | ylab("Coauthors per Publication") 107 | ``` 108 | 109 | ![](README_files/figure-markdown_github/nauthors-1.png) 110 | 111 | Most common 50 authors: 112 | 113 | ``` r 114 | aut <- unlist(dat$AUTHOR) 115 | topaut <- as.data.frame(head(sort(table(aut), decreasing = TRUE), 150)) 116 | topaut$aut <- factor(topaut$aut, levels = rev(topaut$aut)) 117 | ggplot(topaut[1:50, ], aes(x = aut, y = Freq)) + 118 | geom_bar(stat = "identity") + 119 | ylab("Count") + 120 | xlab("Author Name") + 121 | coord_flip() 122 | ``` 123 | 124 | ![](README_files/figure-markdown_github/authors-1.png) 125 | 126 | Gender of authors 127 | ----------------- 128 | 129 | The overall breakdown of author genders (counting each author only once) 130 | is as follows: 131 | 132 | ``` r 133 | pull_first_names <- function(x) { 134 | x <- unlist(regmatches(as.character(x), regexec("(?<=, )[A-Za-z]+(?=([., ]{1}|$))", as.character(x), perl = TRUE))) 135 | x[x != ""] 136 | } 137 | first_names <- pull_first_names(unique(as.character(unlist(dat$AUTHOR)))) 138 | author_genders <- gender::gender(unlist(first_names)) 139 | 140 | ggplot(author_genders[, "gender", drop = FALSE], aes(x = "", fill = gender)) + 141 | geom_bar(aes(y = (..count..)/sum(..count..)), width = 1, position = "dodge") + 142 | scale_fill_manual(limits = c("male", "female"), values = c("gray", "black")) + 143 | scale_y_continuous(breaks = seq(0,1,by=0.1), labels = scales::percent) + 144 | coord_flip() + 145 | xlab("") + 146 | ylab("") + 147 | theme(legend.position = "bottom") 148 | ``` 149 | 150 | ![](README_files/figure-markdown_github/authorgender-1.png) 151 | 152 | ``` r 153 | team_genders <- unlist(lapply(dat$AUTHOR, function(x) { 154 | firsts <- pull_first_names(as.character(x)) 155 | u <- author_genders$gender[match(firsts[firsts != ""], author_genders$name)] 156 | if (!length(u) || is.na(u)) { 157 | "Ambiguous" 158 | } else if (length(u) == 1 && u == "male") { 159 | "Male Solo" 160 | } else if (length(u) == 1 && u == "female") { 161 | "Female Solo" 162 | } else if (all(u %in% "male")) { 163 | "Male Team" 164 | } else if (all(u %in% "female")) { 165 | "Female Team" 166 | } else { 167 | "Male-Female Team" 168 | } 169 | })) 170 | team_genders_df <- table(factor(team_genders, rev(c("Male-Female Team", "Male Solo", "Female Solo", "Male Team", "Female Team", "Ambiguous")))) 171 | ggplot(data.frame(team_genders_df), aes(x = Var1, y = Freq)) + 172 | geom_bar(width = 1, position = "dodge", stat = "identity") + 173 | coord_flip() + 174 | xlab("") + 175 | ylab("") 176 | ``` 177 | 178 | ![](README_files/figure-markdown_github/teamgender-1.png) 179 | 180 | Caveat: The above is based upon [the gender 181 | package](https://cran.r-project.org/package=gender), which classifies 182 | first names based upon historical data. This is not necessarily accurate 183 | and is restricted to a binary classification. It also uses all 184 | historical data provided in the package and is based only on United 185 | States data, making it possibly inaccurate for any given individual in 186 | the dataset. 187 | 188 | Coauthorship 189 | ------------ 190 | 191 | Coauthorship network among most common 150 authors: 192 | 193 | ``` r 194 | # get all coauthor pairs 195 | colist <- lapply(dat$AUTHOR, function(x) if (length(x) >= 2) combn(x, m = 2) else NA_character_) 196 | # convert networks of top coauthors to igraph object 197 | codat <- na.omit(data.frame(t(do.call("cbind", colist)))) 198 | codat$N <- 1L 199 | # make coauthor graph from top coauthors 200 | topco <- aggregate(N ~ X1 + X2, data = codat[codat$X1 %in% topaut$aut & codat$X2 %in% topaut$aut, ], FUN = sum) 201 | cograph <- igraph::graph_from_data_frame(topco, directed = FALSE) 202 | 203 | ## ggraph 204 | ggraph::ggraph(cograph, "igraph", algorithm = "nicely") + 205 | ggraph::geom_edge_link(aes(edge_width = log(N)), colour = "gray") + 206 | ggraph::geom_node_text(aes(label = name), fontface = 1, size = 2) + 207 | theme_void() 208 | ``` 209 | 210 | ![](README_files/figure-markdown_github/authornetwork-1.png) 211 | 212 | Another, more interactive way of doing this might be: 213 | 214 | ``` r 215 | networkD3::simpleNetwork(topco) 216 | d3 <- networkD3::igraph_to_networkD3(cograph) 217 | d3$nodes$group <- 1L 218 | networkD3::forceNetwork(Links = d3$links, Nodes = d3$nodes, NodeID = "name", Group = "group") 219 | ``` 220 | 221 | Betweenness centrality of top 25 authors: 222 | 223 | ``` r 224 | between <- igraph::betweenness(cograph) 225 | topcoaut <- na.omit(data.frame(betweenness = head(sort(between, decreasing = TRUE), 30))) 226 | topcoaut$aut <- factor(rownames(topcoaut), levels = rev(rownames(topcoaut))) 227 | ggplot(topcoaut, aes(x = aut, y = betweenness)) + 228 | geom_bar(stat = "identity") + 229 | ylab("Network Betweenness") + 230 | xlab("Author Name") + 231 | coord_flip() 232 | ``` 233 | 234 | ![](README_files/figure-markdown_github/between-1.png) 235 | 236 | Publication Years 237 | ----------------- 238 | 239 | Years of publication (post-1950): 240 | 241 | ``` r 242 | ggplot(dat[!is.na(dat$YEAR) & dat$YEAR > 1950, ], aes(x = YEAR)) + 243 | geom_bar() + 244 | xlab("Publication Year") + 245 | ylab("Count") 246 | ``` 247 | 248 | ![](README_files/figure-markdown_github/year-1.png) 249 | 250 | Data missingness 251 | ---------------- 252 | 253 | Proportion missing data, by field, for articles: 254 | 255 | ``` r 256 | articles <- dat[dat$CATEGORY == "ARTICLE", c("AUTHOR", "TITLE", "JOURNAL", "YEAR", "VOLUME", "NUMBER", "PAGES", "ABSTRACT", "DOI")] 257 | articles <- cbind.data.frame(FIELD = names(articles), MISSINGNESS = unlist(lapply(articles, function(x) sum(is.na(x) == TRUE)/length(x)))) 258 | ggplot(articles, aes(x = FIELD, y = MISSINGNESS)) + 259 | geom_bar(stat = "identity", fill = "darkgray") + 260 | ylab("Proportion Missing") + 261 | ylim(c(0,1)) + 262 | xlab("") + 263 | coord_flip() 264 | ``` 265 | 266 | ![](README_files/figure-markdown_github/missingness_articles-1.png) 267 | 268 | Proportion missing data, by field, for books: 269 | 270 | ``` r 271 | books <- dat[dat$CATEGORY == "BOOK", c("AUTHOR", "EDITOR", "TITLE", "PUBLISHER", "YEAR", "ADDRESS", "ISBN")] 272 | books <- cbind.data.frame(FIELD = names(books), MISSINGNESS = unlist(lapply(books, function(x) sum(is.na(x) == TRUE)/length(x)))) 273 | ggplot(books, aes(x = FIELD, y = MISSINGNESS)) + 274 | geom_bar(stat = "identity", fill = "darkgray") + 275 | ylab("Proportion Missing") + 276 | ylim(c(0,1)) + 277 | xlab("") + 278 | coord_flip() 279 | ``` 280 | 281 | ![](README_files/figure-markdown_github/missingness_books-1.png) 282 | -------------------------------------------------------------------------------- /README_cache/markdown_github/__packages: -------------------------------------------------------------------------------- 1 | base 2 | knitr 3 | ggplot2 4 | -------------------------------------------------------------------------------- /README_cache/markdown_github/authorgender_8f436ed1426489462361040096c4412d.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/authorgender_8f436ed1426489462361040096c4412d.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/authorgender_8f436ed1426489462361040096c4412d.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/authorgender_8f436ed1426489462361040096c4412d.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/authorgender_8f436ed1426489462361040096c4412d.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/authorgender_8f436ed1426489462361040096c4412d.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/authornetwork_981f0de20875aa331251599706e72215.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/authornetwork_981f0de20875aa331251599706e72215.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/authornetwork_981f0de20875aa331251599706e72215.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/authornetwork_981f0de20875aa331251599706e72215.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/authornetwork_981f0de20875aa331251599706e72215.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/authornetwork_981f0de20875aa331251599706e72215.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/authors_bd3938e50fde0f6b774b06cb284d2355.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/authors_bd3938e50fde0f6b774b06cb284d2355.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/authors_bd3938e50fde0f6b774b06cb284d2355.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/authors_bd3938e50fde0f6b774b06cb284d2355.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/authors_bd3938e50fde0f6b774b06cb284d2355.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/authors_bd3938e50fde0f6b774b06cb284d2355.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/between_d849ed424de8d7af6716a345a84dc7c3.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/between_d849ed424de8d7af6716a345a84dc7c3.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/between_d849ed424de8d7af6716a345a84dc7c3.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/between_d849ed424de8d7af6716a345a84dc7c3.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/between_d849ed424de8d7af6716a345a84dc7c3.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/between_d849ed424de8d7af6716a345a84dc7c3.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/bibtype_bc71da4e681ee7b4e6d0cb14ccc9e8c7.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/bibtype_bc71da4e681ee7b4e6d0cb14ccc9e8c7.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/bibtype_bc71da4e681ee7b4e6d0cb14ccc9e8c7.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/bibtype_bc71da4e681ee7b4e6d0cb14ccc9e8c7.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/bibtype_bc71da4e681ee7b4e6d0cb14ccc9e8c7.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/bibtype_bc71da4e681ee7b4e6d0cb14ccc9e8c7.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/data_e2390b075e9ff3de98ce9dd1e2862c7d.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/data_e2390b075e9ff3de98ce9dd1e2862c7d.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/data_e2390b075e9ff3de98ce9dd1e2862c7d.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/data_e2390b075e9ff3de98ce9dd1e2862c7d.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/data_e2390b075e9ff3de98ce9dd1e2862c7d.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/data_e2390b075e9ff3de98ce9dd1e2862c7d.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/journal_7be42f655105611373a5badf4ef34541.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/journal_7be42f655105611373a5badf4ef34541.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/journal_7be42f655105611373a5badf4ef34541.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/journal_7be42f655105611373a5badf4ef34541.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/journal_7be42f655105611373a5badf4ef34541.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/journal_7be42f655105611373a5badf4ef34541.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/missingness_articles_3483e373851a8aab21b82c236d5d40ed.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/missingness_articles_3483e373851a8aab21b82c236d5d40ed.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/missingness_articles_3483e373851a8aab21b82c236d5d40ed.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/missingness_articles_3483e373851a8aab21b82c236d5d40ed.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/missingness_articles_3483e373851a8aab21b82c236d5d40ed.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/missingness_articles_3483e373851a8aab21b82c236d5d40ed.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/missingness_books_793f5c222e66d24229907f0d3066882b.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/missingness_books_793f5c222e66d24229907f0d3066882b.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/missingness_books_793f5c222e66d24229907f0d3066882b.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/missingness_books_793f5c222e66d24229907f0d3066882b.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/missingness_books_793f5c222e66d24229907f0d3066882b.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/missingness_books_793f5c222e66d24229907f0d3066882b.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/nauthors_e73f84d9904d997e745e7a57b3da9109.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/nauthors_e73f84d9904d997e745e7a57b3da9109.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/nauthors_e73f84d9904d997e745e7a57b3da9109.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/nauthors_e73f84d9904d997e745e7a57b3da9109.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/nauthors_e73f84d9904d997e745e7a57b3da9109.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/nauthors_e73f84d9904d997e745e7a57b3da9109.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/publisher_ada8d177db0375b9bc30def941253a89.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/publisher_ada8d177db0375b9bc30def941253a89.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/publisher_ada8d177db0375b9bc30def941253a89.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/publisher_ada8d177db0375b9bc30def941253a89.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/publisher_ada8d177db0375b9bc30def941253a89.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/publisher_ada8d177db0375b9bc30def941253a89.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/teamgender_6355380f713488f710792eb7f126f51e.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/teamgender_6355380f713488f710792eb7f126f51e.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/teamgender_6355380f713488f710792eb7f126f51e.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/teamgender_6355380f713488f710792eb7f126f51e.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/teamgender_6355380f713488f710792eb7f126f51e.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/teamgender_6355380f713488f710792eb7f126f51e.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/unnamed-chunk-1_864902b4f8948078f0e758be758c7e9e.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/unnamed-chunk-1_864902b4f8948078f0e758be758c7e9e.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/unnamed-chunk-1_864902b4f8948078f0e758be758c7e9e.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/unnamed-chunk-1_864902b4f8948078f0e758be758c7e9e.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/unnamed-chunk-1_864902b4f8948078f0e758be758c7e9e.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/unnamed-chunk-1_864902b4f8948078f0e758be758c7e9e.rdx -------------------------------------------------------------------------------- /README_cache/markdown_github/year_1ab75c0455b5256efa8cc6c70b9ff6e2.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/year_1ab75c0455b5256efa8cc6c70b9ff6e2.RData -------------------------------------------------------------------------------- /README_cache/markdown_github/year_1ab75c0455b5256efa8cc6c70b9ff6e2.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/year_1ab75c0455b5256efa8cc6c70b9ff6e2.rdb -------------------------------------------------------------------------------- /README_cache/markdown_github/year_1ab75c0455b5256efa8cc6c70b9ff6e2.rdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_cache/markdown_github/year_1ab75c0455b5256efa8cc6c70b9ff6e2.rdx -------------------------------------------------------------------------------- /README_files/figure-markdown_github/authorgender-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/authorgender-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/authornetwork-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/authornetwork-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/authors-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/authors-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/between-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/between-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/bibtype-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/bibtype-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/journal-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/journal-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/missingness_articles-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/missingness_articles-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/missingness_books-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/missingness_books-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/nauthors-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/nauthors-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/publisher-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/publisher-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/teamgender-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/teamgender-1.png -------------------------------------------------------------------------------- /README_files/figure-markdown_github/year-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leeper/references/bc9a144448ff89b37401afd4d7e67c6941cf9cb4/README_files/figure-markdown_github/year-1.png -------------------------------------------------------------------------------- /TODO.txt: -------------------------------------------------------------------------------- 1 | Cacciatore, Yeo, Scheufele, Xenos, Brossard, Corley (JMCQ, 2018).pdf 2 | --------------------------------------------------------------------------------