https://github.com/aphalo/aphalo

Custom GitHub profile

https://github.com/aphalo/aphalo

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.4%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Custom GitHub profile

Basic Info
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "illustrations/",
  fig.retina = 3,
  out.width = "100%"
)
```

[![GitHub stats](https://github-readme-stats.vercel.app/api?username=aphalo&show_icons=true&theme=transparent)](https://github.com/anuraghazra/github-readme-stats)

## Computing-related Skills

Programing: R, (Python), C++, (Java), C, bash, awk, Perl, sh, (FORTRAN), Modula-2, Pascal, BASIC, Forth.

Text mark up: $\LaTeX$, $\TeX$, Quarto, Rmarkdown, markdown, HTML.

Revision control systems: git, svn, (cvs), rss.

Drafting: Inkscape, OpenSCAD, Adobe Illustrator.

Image/photography: Capture One, Helicon Focus, Lumariver Profile Designer, RawDigger, VueScan, LightRoom, Photoshop.

Video- and interactive tutorials: FlashBack Pro, R shiny.

## IDE/GUI's I like

WinEdt (for $\LaTeX$, $\TeX$, with embedded R code or not), RStudio (for R scripts, Quarto and Rmarkdown), GitKraken (for git).

## Elsewhere

ORCID profile: 
ORCID logo
https://orcid.org/0000-0003-3385-972X


Web site for the book [Learn R: As a Language](https://www.learnr-book.info/).

## R Packages

```{r, echo=FALSE}
all_pkgs.df <- tools::CRAN_package_db() |>
  tibble::as_tibble()

all_pkgs.df |> 
  janitor::clean_names()  |> 
  dplyr::filter(grepl("Aphalo", author)) -> my_pkgs.df

my_pkgs.df |> 
  dplyr::filter(package != "ggrepel") |>
  dplyr::select("R package" = package, Title = title, Version = version, Date = published, doi) -> my_pkgs_condensed.df 
```


```{r, echo = FALSE}
packages <- my_pkgs_condensed.df[["R package"]]
pkgs_hist.ls <- list()
dates <- lubridate::Date()
for (package in packages) {
  temp <- packageRank::packageHistory(package, check.package = TRUE)
  dates <- c(dates, temp[["Date"]])
  pkgs_hist.ls[[package]] <- temp
}
dates <- sort(dates)

today    <- lubridate::today()
first_published <- dates[1]
last_update <- dates[length(dates)] 

cran_updates_avg <- length(dates)/as.numeric(today - first_published) * 30
cran_updates_avg <- sprintf("%0.2f", cran_updates_avg)

cran_updates_btw <- as.numeric(today - first_published) / length(dates)
cran_updates_btw <- sprintf("%s", round(cran_updates_btw, digits = 0))
```

The sources of the R packages I have published are in public Git repositories at GitHub. Out of the packages that I have authored and maintain, `r length(packages)` are currently available through CRAN. The total number of package submissions (mostly updates) as author and maintainer is `r length(dates)` since `r format.Date(first_published)`.

I have published in CRAN one package update roughly every `r cran_updates_btw` days, or about `r cran_updates_avg` package updates per month, since `r format.Date(first_published)`.

The most recent of these updates was published in CRAN on `r dates[length(dates)]`.

```{r 'cran-packages-plot', echo = FALSE,  fig.width=10, fig.height=2.5}
library(lattice)

cran_releases.df <- data.frame(dates, ones = 1)

# Assuming postdf is loaded and has a 'date' column
# trellis.par.set(background = list(col="transparent"))

xyplot(ones ~ dates, 
       data = cran_releases.df,
       type = 'p',
       pch = "|",  
       cex = 5,   
       col = "blue",
       alpha = 1/3,
       xlab = "",
       ylab = "",
       main = "R Packages: Published Updates at CRAN",
       scales = list(x = list(cex = 1.4), y = list(draw = FALSE)),
       strip = FALSE,  # Removes strip labels
       axis.line = list(col = "transparent"),
       layout = c(1, 1),  # Single panel
       par.settings = list(
         strip.border = list(col = "transparent"), #making the border transparent
         axis.line = list(col = "transparent") #making the axes transparent
       )
      )
```

📂 Click to expand a list of my packages at CRAN with the most recently updated one at the top. ```{r cran-packages-table, results='asis', echo = FALSE} my_pkgs_condensed.df |> dplyr::mutate(Title = paste("[", Title, "](", "https://doi.org/", doi, ")", sep = "")) |> dplyr::select(-doi) |> dplyr::arrange(desc(Date)) |> knitr::kable() ```
Updates under development are published at R-Universe as soon as merged or commited into the main branch in the repositories at GitHub. Two packages that depend on a commercial closed-source driver, but usable with a free runtime of the driver, are published only at R-Universe. Preliminary/experimental incomplete versions of a couple of new packages are already partly usable are also only at R-Universe and here in GitHub. R-Universe profile: [https://aphalo.r-universe.dev](https://aphalo.r-universe.dev). [![:name status badge](https://aphalo.r-universe.dev/badges/:name)](https://aphalo.r-universe.dev/) [![:packages status badge](https://aphalo.r-universe.dev/badges/:packages)](https://aphalo.r-universe.dev/) ## Posts and Pages at [R for Photobiology](https://www.r4photobiology.info/) ```{r, echo=FALSE} find_key <- function(x, key){ j <- lapply(x, function(x){ k <- grep(sprintf("^%s:", key), x, value = TRUE) k <- gsub(sprintf("^%s: |'", key), "", k) k[1] }) unlist(j) } ``` ```{r, echo = FALSE} url_root <- "https://www.r4photobiology.info/" post.files <- list.files("~/R-web-blog/r4p-blog/", ".*qmd$", recursive = TRUE, full.names = TRUE) post.files <- grep("_extensions", x = post.files, value = TRUE, invert = TRUE) posts <- lapply(post.files, readLines) r4p_posts.df <- tibble::tibble( n = seq_along(posts), draft = find_key(posts, "draft") |> grepl(pattern = "true", x = _), date = lubridate::ymd(find_key(posts, "date")), date.modified = lubridate::ymd(find_key(posts, "date-modified")), slug = find_key(posts, "slug") |> gsub('\\"', "", x = _), title = find_key(posts, "title"), post.url = paste(url_root, gsub("C:/Users/Aphalo/Documents/R-web-blog/r4p-blog/|\\.qmd", "", post.files), ".html", sep = ""), link = paste("[", title, "]", "(", post.url, ")", sep = "") ) |> subset(subset = !draft & !is.na(date)) |> # date is NA for indexes and home dplyr::mutate(date.modified = as.Date(ifelse(is.na(date.modified), date, date.modified))) |> dplyr::arrange(date) today <- lubridate::today() min_date <- min(r4p_posts.df$date, na.rm = TRUE) last_post <- lubridate::days(today - max(r4p_posts.df$date, na.rm = TRUE)) last_update <- lubridate::days(today - max(r4p_posts.df$date.modified, na.rm = TRUE)) r4p_post_avg <- nrow(r4p_posts.df)/as.numeric(today - min_date) * 30 r4p_post_avg <- sprintf("%0.1f", r4p_post_avg) r4p_postbtw <- as.numeric(today - min_date) / nrow(r4p_post_avg) r4p_postbtw <- sprintf("%s", round(r4p_postbtw, digits = 0)) ``` The site [R for Photobiology](https://www.r4photobiology.info) contains `r nrow(r4p_posts.df)` posts and pages published since `r format.Date(min_date)`! I have recently rebuilt the site using Quarto, and I have transferred only some of the posts originally published using WordPress. I am slowly adding more old posts, but only those that remain relevant. The figure below shows original publication date even when posts have been later updated. The source files are in a [public repository at GitHub](https://github.com/aphalo/r4p-blog). I have published one post or page roughly every `r r4p_postbtw` days, or about `r r4p_post_avg` posts per month, since `r format.Date(min_date)`. I published the most recent post or page `r as.numeric(last_post) / 3600 / 24` days ago, and most recently updated a previously published one `r as.numeric(last_update) / 3600 / 24` days ago. ```{r 'r4p-plot', echo = FALSE, fig.width=10, fig.height=2.5} library(lattice) r4p_posts.df$ones <- 1 # Assuming postdf is loaded and has a 'date' column # trellis.par.set(background = list(col="transparent")) xyplot(ones ~ date, data = r4p_posts.df, type = 'p', pch = "|", cex = 5, col = "darkblue", alpha = 1/3, xlab = "", ylab = "", main = "R for Photobiology: Published Posts and Pages", scales = list(x = list(cex = 1.4), y = list(draw = FALSE)), strip = FALSE, # Removes strip labels axis.line = list(col = "transparent"), layout = c(1, 1), # Single panel par.settings = list( strip.border = list(col = "transparent"), #making the border transparent axis.line = list(col = "transparent") #making the axes transparent ) ) ```
📂 Click to expand a full list of posts. ```{r r4p-posts-table, results='asis', echo = FALSE} data.frame( Date = rev(r4p_posts.df$date), Updated = rev(r4p_posts.df$date.modified), Title = rev(r4p_posts.df$link) ) |> knitr::kable() ```
## Posts and pages at [Photo Rumblings and Whispers](https://www.photo-spectrum.info/) ```{r, echo = FALSE, warning=FALSE} url_root <- "https://www.photo-spectrum.info/" post.files <- list.files("~/R-web-blog/photo-spectrum-blog/", ".*qmd$", recursive = TRUE, full.names = TRUE) post.files <- grep("_extensions", x = post.files, value = TRUE, invert = TRUE) posts <- lapply(post.files, readLines) photo_posts.df <- tibble::tibble( n = seq_along(posts), draft = find_key(posts, "draft") |> grepl(pattern = "true", x = _), date = lubridate::ymd(find_key(posts, "date")), date.modified = lubridate::ymd(find_key(posts, "date-modified")), # slug = find_key(posts, "slug") |> # gsub('\\"', "", x = _), title = find_key(posts, "title"), post.url = paste(url_root, gsub("C:/Users/Aphalo/Documents/R-web-blog/photo-spectrum-blog/|\\.qmd", "", post.files), ".html", sep = ""), link = paste("[", title, "]", "(", post.url, ")", sep = "") ) |> subset(subset = !draft & !is.na(date)) |> # date is NA for indexes and home dplyr::mutate(date.modified = as.Date(ifelse(is.na(date.modified), date, date.modified))) |> dplyr::arrange(date) today <- lubridate::today() min_date <- min(photo_posts.df$date, na.rm = TRUE) last_post <- lubridate::days(today - max(photo_posts.df$date, na.rm = TRUE)) photo_post_avg <- nrow(photo_posts.df)/as.numeric(today - min_date) * 30 photo_post_avg <- sprintf("%0.1f", photo_post_avg) photo_postbtw <- as.numeric(today - min_date) / nrow(r4p_post_avg) photo_postbtw <- sprintf("%s", round(photo_postbtw, digits = 0)) ``` The [Photo Rumblings and Whispers](https://www.photo-spectrum.info/) has `r nrow(photo_posts.df)` posts since `r format.Date(min_date)`! I have recently rebuilt the site using Quarto, and I have transferred most of the posts originally published using WordPress. I may add one or two old posts. The figure below shows original publication date even when posts and pages have been later updated. I have updated several of the posts and pages and I aim to continue updating them as needed. The source files are in a [public repository at GitHub](https://github.com/aphalo/photo-spectrum-blog). I have published one post or page roughly every `r photo_postbtw` days, or about `r photo_post_avg` posts per month, since `r min_date`. I published the most recent post or page `r as.numeric(last_post) / 3600 / 24` days ago. ```{r 'photo-plot', echo = FALSE, fig.width=10, fig.height=2.5} library(lattice) photo_posts.df$ones <- 1 # Assuming postdf is loaded and has a 'date' column # trellis.par.set(background = list(col="transparent")) xyplot(ones ~ date, data = photo_posts.df, type = 'p', pch = "|", cex = 5, col = "orange", apha = 1/2, xlab = "", ylab = "", main = "Photo Rumblings and Whispers: Published Posts and Pages", scales = list(x = list(cex = 1.4), y = list(draw = FALSE)), strip = FALSE, # Removes strip labels axis.line = list(col = "transparent"), layout = c(1, 1), # Single panel par.settings = list( strip.border = list(col = "transparent"), #making the border transparent axis.line = list(col = "transparent") #making the axes transparent ) ) ```
📂 Click to expand a full list of posts. ```{r photo-posts-table, results='asis', echo = FALSE} data.frame( Date = rev(photo_posts.df$date), Updated = rev(photo_posts.df$date.modified), Title = rev(photo_posts.df$link) ) |> knitr::kable() ```
_Updated `r Sys.time()`_ This README file is based on the [blog post by Athanasia Mo Mowinckel](https://drmowinckels.io/blog/2024/github-profile/) and the [R code by Martin Henze](https://heads0rtai1s.github.io/2022/07/22/kaggle-dataset-cran-packages/).

Owner

  • Name: Pedro Aphalo
  • Login: aphalo
  • Kind: user
  • Location: Helsinki, Finland
  • Company: University of Helsinki, Organismal and Evolutionary Biology (OEB)

Senior University Lecturer, Principal Investigator (Sensory Ecology of Plants, Photobiology, Crops, Forest trees, Data Analysis, Data Visualization)

GitHub Events

Total
  • Push event: 3
Last Year
  • Push event: 3

Committers

Last synced: 12 months ago

All Time
  • Total Commits: 13
  • Total Committers: 1
  • Avg Commits per committer: 13.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 13
  • Committers: 1
  • Avg Commits per committer: 13.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Pedro J. Aphalo p****o@h****i 13
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 12 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels