{"id":14067594,"url":"https://github.com/ropensci-review-tools/pkgstats","last_synced_at":"2026-02-18T21:03:09.837Z","repository":{"id":37082166,"uuid":"353620504","full_name":"ropensci-review-tools/pkgstats","owner":"ropensci-review-tools","description":"Static code analyses for R packages","archived":false,"fork":false,"pushed_at":"2026-02-18T15:14:29.000Z","size":2033,"stargazers_count":20,"open_issues_count":7,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-18T17:39:41.406Z","etag":null,"topics":["code-analysis","code-statistics","r","software-analysis"],"latest_commit_sha":null,"homepage":"https://docs.ropensci.org/pkgstats/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ropensci-review-tools.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-04-01T07:56:36.000Z","updated_at":"2026-02-18T15:17:38.000Z","dependencies_parsed_at":"2024-02-06T13:12:46.236Z","dependency_job_id":"cb089275-0bf7-4ae4-8dc1-40280899de9d","html_url":"https://github.com/ropensci-review-tools/pkgstats","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/ropensci-review-tools/pkgstats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci-review-tools%2Fpkgstats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci-review-tools%2Fpkgstats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci-review-tools%2Fpkgstats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci-review-tools%2Fpkgstats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ropensci-review-tools","download_url":"https://codeload.github.com/ropensci-review-tools/pkgstats/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci-review-tools%2Fpkgstats/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29596126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T20:59:56.587Z","status":"ssl_error","status_checked_at":"2026-02-18T20:58:41.434Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-analysis","code-statistics","r","software-analysis"],"created_at":"2024-08-13T07:05:40.791Z","updated_at":"2026-02-18T21:03:09.831Z","avatar_url":"https://github.com/ropensci-review-tools.png","language":"R","funding_links":[],"categories":["R"],"sub_categories":[],"readme":"---\ntitle: \"pkgstats\"\noutput:\n  md_document:\n    variant: gfm\n\n  rmarkdown::html_vignette:\n    self_contained: no\n---\n\n\u003c!-- badges: start --\u003e\n[![R build status](https://github.com/ropensci-review-tools/pkgstats/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/ropensci-review-tools/pkgstats/actions?query=workflow%3AR-CMD-check.yaml)\n[![codecov](https://codecov.io/gh/ropensci-review-tools/pkgstats/branch/main/graph/badge.svg)](https://app.codecov.io/gh/ropensci-review-tools/pkgstats)\n[![Project Status: Active](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/pkgstats)](https://cran.r-project.org/package=pkgstats/) \n[![CRAN Downloads](https://cranlogs.r-pkg.org/badges/grand-total/pkgstats?color=orange)](https://cran.r-project.org/package=pkgstats)\n\u003c!-- badges: end --\u003e\n\n```{r, include = FALSE, echo = FALSE, eval = FALSE}\nif (identical (Sys.getenv (\"IN_PKGDOWN\"), \"true\")) {\n    pkgstats::ctags_install ()\n}\n```\n\n\n# pkgstats\n\nExtract summary statistics of R package structure and functionality. Not all\nstatistics of course, but a good go at balancing insightful statistics while\nensuring computational feasibility. `pkgstats` is a *static* code analysis\ntool, so is generally very fast (a few seconds at most for very large\npackages). Installation is described in [a separate\nvignette](https://docs.ropensci.org/pkgstats/articles/installation.html).\n\n## What statistics?\n\nStatistics are derived from these primary sources:\n\n1. Numbers of lines of code, documentation, and white space (both between and\n   within lines) in each directory and language\n2. Summaries of package `DESCRIPTION` file and related package meta-statistics\n3. Summaries of all objects created via package code across multiple languages\n   and all directories containing source code (`./R`, `./src`, and\n   `./inst/include`).\n4. A function call network derived from function definitions obtained from\n   [the code tagging library, `ctags`](https://ctags.io), and references\n   (\"calls\") to those obtained from [another tagging library,\n   `gtags`](https://www.gnu.org/software/global/). This network roughly\n   connects every object making a call (as `from`) with every object being\n   called (`to`).\n5. An additional function call network connecting calls within R functions to\n   all functions from other R packages.\n\nThe [primary function,\n`pkgstats()`](https://docs.ropensci.org/pkgstats/reference/pkgstats.html),\nreturns a list of these various components, including full `data.frame` objects\nfor the final three components described above. The statistical properties of\nthis list can be aggregated by the [`pkgstats_summary()`\nfunction](https://docs.ropensci.org/pkgstats/reference/pkgstats_summary.html),\nwhich returns a `data.frame` with a single row of summary statistics. This\nfunction is demonstrated below, including full details of all statistics\nextracted.\n\n\n## Demonstration\n\nThe following code demonstrates the output of the main function, `pkgstats`,\nusing an internally bundled `.tar.gz` \"tarball\" of this package. The\n`system.time` call demonstrates that the static code analyses of `pkgstats` are\ngenerally very fast.\n\n```{r demo, eval = FALSE}\nlibrary (pkgstats)\ntarball \u003c- system.file (\"extdata\", \"pkgstats_9.9.tar.gz\", package = \"pkgstats\")\nsystem.time (\n    p \u003c- pkgstats (tarball)\n)\n```\n```{r demo-tarball, echo = FALSE}\nlibrary (pkgstats)\ntarball \u003c- system.file (\"extdata\", \"pkgstats_9.9.tar.gz\", package = \"pkgstats\")\npath \u003c- extract_tarball (tarball)\n```\n\n\n\n```{r demo-output-systime, echo = FALSE, eval = TRUE}\nc (user = 1.701, system = 0.124, elapsed = 1.802)\n```\n\n```{r demo-names, eval = FALSE}\nnames (p)\n```\n\n```{r demo-output, echo = FALSE, eval = TRUE}\nc (\n    \"loc\", \"vignettes\", \"data_stats\", \"desc\", \"translations\",\n    \"objects\", \"network\", \"external_calls\"\n)\n```\n\n\nThe result is a list of various data extracted from the code. All except for\n`objects` and `network` represent summary data:\n\n```{r pout, eval = FALSE, echo = TRUE}\np [!names (p) %in% c (\"objects\", \"network\", \"external_calls\")]\n```\n\n```{r pout-fakey, eval = TRUE, echo = FALSE}\np \u003c- list (\n    loc = tibble::tibble (\n        langage = c (\"C++\", \"R\", \"R\", \"R\"),\n        dir = c (\"src\", \"R\", \"tests\", \"tests/testthat\"),\n        nfiles = as.integer (c (3, 19, 2, 5)),\n        nlines = as.integer (c (365, 3741, 146, 202)),\n        ncode = as.integer (c (277, 2698, 121, 145)),\n        ndoc = as.integer (c (21, 536, 1, 9)),\n        nempty = as.integer (c (67, 507, 24, 48)),\n        nspaces = as.integer (c (933, 27575, 395, 375)),\n        nchars = as.integer (c (7002, 94022, 2423, 3738)),\n        nexpr = rep (1, 4),\n        ntabs = rep (0L, 4),\n        indentation = rep (4L, 4)\n    ),\n    vignettes = c (vignettes = 0L, demos = 0L),\n    data_stats = c (n = 0L, total_size = 0L, median_size = 0L),\n    desc = desc_stats (path),\n    translations = NA\n)\np\n```\n\n\nThe various components of these results are described in further detail in the\n[main package\nvignette](https://docs.ropensci.org/pkgstats/articles/pkgstats.html).\n\n\n### Overview of statistics and the `pkgstats_summary()` function\n\nA summary of the `pkgstats` data can be obtained by submitting the object\nreturned from `pkgstats()` to the [`pkgstats_summary()`\nfunction](https://docs.ropensci.org/pkgstats/reference/pkgstats_summary.html):\n\n```{r summary, echo = TRUE, eval = FALSE}\ns \u003c- pkgstats_summary (p)\n```\n\n```{r summary-ncols, echo = FALSE, eval = TRUE}\nncol_s \u003c- 95L\n```\n\n\n\nThis function reduces the result of the [`pkgstats()`\nfunction](https://docs.ropensci.org/pkgstats/reference/pkgstats_summary.html)\nto a single line with `r ncol_s` entries, represented as a `data.frame` with\none row and that number of columns. This format is intended to enable summary\nstatistics from multiple packages to be aggregated by simply binding rows\ntogether. While `r ncol_s` statistics might seem like a lot, the\n[`pkgstats_summary()`\nfunction](https://docs.ropensci.org/pkgstats/reference/pkgstats_summary.html)\naims to return as many usable raw statistics as possible in order to flexibly\nallow higher-level statistics to be derived through combination and\naggregation. These `r ncol_s` statistics can be roughly grouped into the\nfollowing categories (not shown in the order in which they actually appear),\nwith variable names in parentheses after each description. Some statistics are\nsummarised as comma-delimited character strings, such as translations into\nhuman languages, or other packages listed under \"depends\", \"imports\", or\n\"suggests\". This enables subsequent analyses of their contents, for example of\nactual translated languages, or both aggregate numbers and individual details\nof all package dependencies, as demonstrated immediately below.\n\n**Package Summaries**\n\n- name (`package`)\n- Package version (`version`)\n- Package date, as modification time of `DESCRIPTION` file where not explicitly\n  stated (`date`)\n- License (`license`)\n- Languages, as a single comma-separated character value (`languages`), and\n  excluding `R` itself.\n- List of translations where package includes translations files, given as list\n  of (spoken) language codes (`translations`).\n\n**Information from `DESCRIPTION` file**\n\n- Package URL(s) (`url`)\n- URL for BugReports (`bugs`)\n- Number of contributors with role of *author* (`desc_n_aut`), *contributor*\n  (`desc_n_ctb`), *funder* (`desc_n_fnd`), *reviewer* (`desc_n_rev`), *thesis\n  advisor* (`ths`), and *translator* (`trl`, relating to translation between\n  computer and not spoken languages).\n- Comma-separated character entries for all `depends`, `imports`, `suggests`,\n  and `linking_to` packages.\n\nNumbers of entries in each the of the last two kinds of items can be obtained\nfrom by a simple `strsplit` call, like this:\n\n```{r strsplit, echo = TRUE, eval = FALSE}\ndeps \u003c- strsplit (s$suggests, \", \") [[1]]\nlength (deps)\nprint (deps)\n```\n\n```{r strsplit-out1, echo = FALSE, eval = TRUE}\n9L\n```\n\n```{r strsplit-deps, echo = TRUE, eval = FALSE}\nprint (deps)\n```\n\n```{r strsplit-out2, echo = FALSE, eval = TRUE}\nc (\n    \"hms\", \"knitr\", \"pbapply\", \"pkgbuild\", \"Rcpp\",\n    \"rmarkdown\", \"roxygen2\", \"testthat\", \"visNetwork\"\n)\n```\n\n**Numbers of files and associated data**\n\n- Number of vignettes (`num_vignettes`)\n- Number of demos (`num_demos`)\n- Number of data files (`num_data_files`)\n- Total size of all package data (`data_size_total`)\n- Median size of package data files (`data_size_median`)\n- Numbers of files in main sub-directories (`files_R`, `files_src`,\n  `files_inst`, `files_vignettes`, `files_tests`), where numbers are\n  recursively counted in all sub-directories, and where `inst` only counts\n  files in the `inst/include` sub-directory.\n\n**Statistics on lines of code**\n\n- Total lines of code in each sub-directory (`loc_R`, `loc_src`, `loc_ins`,\n  `loc_vignettes`, `loc_tests`).\n- Total numbers of blank lines in each sub-directory (`blank_lines_R`,\n  `blank_lines_src`, `blank_lines_inst`, `blank_lines_vignette`,\n  `blank_lines_tests`).\n- Total numbers of comment lines in each sub-directory (`comment_lines_R`,\n  `comment_lines_src`, `comment_lines_inst`, `comment_lines_vignettes`,\n  `comment_lines_tests`).\n- Measures of relative white space in each sub-directory (`rel_space_R`,\n  `rel_space_src`, `rel_space_inst`, `rel_space_vignettes`, `rel_space_tests`),\n  as well as an overall measure for the `R/`, `src/`, and `inst/` directories\n  (`rel_space`).\n- The number of spaces used to indent code (`indentation`), with values of -1\n  indicating indentation with tab characters.\n- The median number of nested expression per line of code, counting only those\n  lines which have any expressions (`nexpr`).\n\n**Statistics on individual objects (including functions)**\n\nThese statistics all refer to \"functions\", but actually represent more general\n\"objects,\" such as global variables or class definitions (generally from\nlanguages other than R), as detailed below.\n\n- Numbers of functions in R (`n_fns_r`)\n- Numbers of exported and non-exported R functions (`n_fns_r_exported`,\n  `n_fns_r_not_exported`)\n- Number of functions (or objects) in other computer languages (`n_fns_src`),\n  including functions in both `src` and `inst/include` directories.\n- Number of functions (or objects) per individual file in R and in all other\n  (`src`) directories (`n_fns_per_file_r`, `n_fns_per_file_src`).\n- Median and mean numbers of parameters per exported R function\n  (`npars_exported_mn`, `npars_exported_md`).\n- Mean and median lines of code per function in R and other languages,\n  including distinction between exported and non-exported R functions\n  (`loc_per_fn_r_mn`, `loc_per_fn_r_md`, `loc_per_fn_r_exp_m`,\n  `loc_per_fn_r_exp_md`, `loc_per_fn_r_not_exp_mn`, `loc_per_fn_r_not_exp_m`,\n  `loc_per_fn_src_mn`, `loc_per_fn_src_md`).\n- Equivalent mean and median numbers of documentation lines per function\n  (`doclines_per_fn_exp_mn`, `doclines_per_fn_exp_md`,\n  `doclines_per_fn_not_exp_m`, `doclines_per_fn_not_exp_md`,\n  `docchars_per_par_exp_mn`, `docchars_per_par_exp_m`).\n\n**Network Statistics**\n\nThe full structure of the `network` table is described below, with summary\nstatistics including:\n\n- Number of edges, including distinction between languages (`n_edges`,\n  `n_edges_r`, `n_edges_src`).\n- Number of distinct clusters in package network (`n_clusters`).\n- Mean and median centrality of all network edges, calculated from both\n  directed and undirected representations of network (`centrality_dir_mn`,\n  `centrality_dir_md`, `centrality_undir_mn`, `centrality_undir_md`).\n- Equivalent centrality values excluding edges with centrality of zero\n  (`centrality_dir_mn_no0`, `centrality_dir_md_no0`, `centrality_undir_mn_no0`,\n  `centrality_undir_md_no`).\n- Numbers of terminal edges (`num_terminal_edges_dir`,\n  `num_terminal_edges_undir`).\n- Summary statistics on node degree (`node_degree_mn`, `node_degree_md`,\n  `node_degree_max`)\n\n\n**External Call Statistics**\n\nThe final column in the result of [the `pkgstats_summary()`\nfunction](https://docs.ropensci.org/pkgstats/reference/pkgstats_summary.html)\nsummarises the `external_calls` object detailing all calls make to external\npackages (including to base and recommended packages). This summary is\nalso represented as a single character string. Each package lists total numbers\nof function calls, and total numbers of unique function calls. Data for each\npackage are separated by a comma, while data within each package are separated\nby a colon.\n\n```{r summary-external-calls, echo = TRUE, eval = FALSE}\ns$external_calls\n```\n```{r external-calls-out, echo = FALSE, eval = TRUE}\npaste0 (\n    \"base:447:78,brio:7:1,dplyr:7:4,fs:4:2,graphics:10:2,\",\n    \"hms:1:1,igraph:3:3,pbapply:1:1,pkgstats:99:60,readr:8:5,\",\n    \"stats:16:2,sys:13:1,tools:2:2,utils:10:7,visNetwork:3:2,withr:5:1\"\n)\n```\n\n\n\nThis structure allows numbers of calls to all packages to be readily extracted\nwith code like the following:\n\n```{r summary-external-calls-transform, echo = TRUE, eval = FALSE}\ncalls \u003c- do.call (\n    rbind,\n    strsplit (strsplit (s$external_call, \",\") [[1]], \":\")\n)\ncalls \u003c- data.frame (\n    package = calls [, 1],\n    n_total = as.integer (calls [, 2]),\n    n_unique = as.integer (calls [, 3])\n)\nprint (calls)\n```\n\n```{r summary-external-calls-out, echo = FALSE, eval = TRUE}\ndata.frame (\n    package = c (\n        \"base\", \"brio\", \"dplyr\", \"fs\", \"graphics\", \"hms\", \"igraph\", \"pbapply\",\n        \"pkgstats\", \"readr\", \"stats\", \"sys\", \"tools\", \"utils\", \"visNetwork\",\n        \"withr\"\n    ),\n    n_total = as.integer (c (\n        447, 7, 7, 4, 10, 1, 3, 1, 99, 8, 16, 13, 2, 10, 3, 5\n    )),\n    n_unique = as.integer (c (\n        78, 1, 4, 2, 2, 1, 3, 1, 60, 5, 2, 1, 2, 7, 2, 1\n    ))\n)\n```\n\n\n\nThe two numeric columns respectively show the total number of calls made to\neach package, and the total number of unique functions used within those\npackages. These results provide detailed information on numbers of calls made\nto, and functions used from, other R packages, including base and recommended\npackages.\n\nFinally, the summary statistics conclude with two further statistics of\n`afferent_pkg` and `efferent_pkg`. These are package-internal measures of\n[afferent and efferent\ncouplings](https://en.wikipedia.org/wiki/Software_package_metrics) between the\nfiles of a package. The *afferent* couplings (`ca`) are numbers of *incoming*\ncalls to each file of a package from functions defined elsewhere in the\npackage, while the *efferent* couplings (`ce`) are numbers of *outgoing* calls\nfrom each file of a package to functions defined elsewhere in the package.\nThese can be used to derive a measure of \"internal package instability\" as the\nratio of efferent to total coupling (`ce / (ce + ca)`).\n\nThere are many other \"raw\" statistics returned by the main `pkgstats()`\nfunction which are not represented in `pkgstats_summary()`. The [main package\nvignette](https://docs.ropensci.org/pkgstats/articles/pkgstats.html) provides\nfurther detail on the full results.\n\nThe following sub-sections provide further detail on the `objects`, `network`,\nand `external_call` items, which could be used to extract additional statistics\nbeyond those described here.\n\n\n## Code of Conduct\n\nPlease note that this package is released with a [Contributor Code of\nConduct](https://ropensci.org/code-of-conduct/). By contributing to this\nproject, you agree to abide by its terms.\n\n## Contributors\n\n\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\nAll contributions to this project are gratefully acknowledged using the [`allcontributors` package](https://github.com/ropensci/allcontributors) following the [allcontributors](https://allcontributors.org) specification. Contributions of any kind are welcome!\n\n### Code\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/mpadge\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/6697851?v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/commits?author=mpadge\"\u003empadge\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/jhollist\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/5438539?v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/commits?author=jhollist\"\u003ejhollist\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/jeroen\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/216319?v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/commits?author=jeroen\"\u003ejeroen\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/Bisaloo\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/10783929?v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/commits?author=Bisaloo\"\u003eBisaloo\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/thomaszwagerman\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/36264706?v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/commits?author=thomaszwagerman\"\u003ethomaszwagerman\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003c/table\u003e\n\n\n### Issue Authors\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/helske\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/1560448?v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+author%3Ahelske\"\u003ehelske\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/rpodcast\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/1043111?u=bb3a363381b39a5172b817ae513c6d10ab1d239a\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+author%3Arpodcast\"\u003erpodcast\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/assignUser\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/16141871?u=b8095df6a10813031922a72335bd6579d5494c16\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+author%3AassignUser\"\u003eassignUser\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/GFabien\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/39873986?u=0c2a28f666efccb0c0b9b23e8584749ab41da789\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+author%3AGFabien\"\u003eGFabien\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/pawelru\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/12943682?v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+author%3Apawelru\"\u003epawelru\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/stitam\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/49147718?u=c8736db475d31efad6ebd07b7bc76e4d7241d884\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+author%3Astitam\"\u003estitam\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/willgearty\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/7232514?v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+author%3Awillgearty\"\u003ewillgearty\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003c/table\u003e\n\n\n### Issue Contributors\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/krlmlr\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/1741643?u=caaf26641c159b84fe1b6d506f57fcea302a556c\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+commenter%3Akrlmlr\"\u003ekrlmlr\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/noamross\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/571752?u=49b086850e1716aa25615cea39250c51e085a5d8\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+commenter%3Anoamross\"\u003enoamross\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/maelle\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/8360597?u=824f03caa87c92420352e3dd9a05470320a67412\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+commenter%3Amaelle\"\u003emaelle\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/mdsumner\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/4107631?u=77e928f4bb904a5c2e8927a02194b86662408329\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+commenter%3Amdsumner\"\u003emdsumner\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/kellijohnson-NOAA\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/4108564?u=503d9aecc5fadf069c75e493e5abf72c7537b06f\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+commenter%3Akellijohnson-NOAA\"\u003ekellijohnson-NOAA\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/ScottClaessens\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/26170108?u=af7101b58069fc6dae648825e6aeb1bd4be561e0\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+commenter%3AScottClaessens\"\u003eScottClaessens\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\n\u003ca href=\"https://github.com/schneiderpy\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/77991319?u=4242d4c5942fced6368dd5c68221e6618092cbf8\u0026v=4\" width=\"100px;\" alt=\"\"/\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/issues?q=is%3Aissue+commenter%3Aschneiderpy\"\u003eschneiderpy\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fropensci-review-tools%2Fpkgstats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fropensci-review-tools%2Fpkgstats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fropensci-review-tools%2Fpkgstats/lists"}