Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mattansb/Practical-Applications-in-R-for-Psychologists
Lesson files for Practical Applications in R for Psychologists.
https://github.com/mattansb/Practical-Applications-in-R-for-Psychologists
data-analysis easystats psychologists regression rstats statistics tidyverse
Last synced: 3 months ago
JSON representation
Lesson files for Practical Applications in R for Psychologists.
- Host: GitHub
- URL: https://github.com/mattansb/Practical-Applications-in-R-for-Psychologists
- Owner: mattansb
- License: other
- Created: 2019-09-10T09:26:36.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-10-06T09:59:28.000Z (about 1 year ago)
- Last Synced: 2024-05-21T00:52:15.089Z (6 months ago)
- Topics: data-analysis, easystats, psychologists, regression, rstats, statistics, tidyverse
- Language: R
- Homepage:
- Size: 13.9 MB
- Stars: 125
- Watchers: 5
- Forks: 17
- Open Issues: 10
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE
Awesome Lists containing this project
README
---
output: github_document
---```{r setup, include=FALSE}
library(knitr)opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
extract_pkgs <- function(fl) {
if (length(fl) == 1) {
txt <- read.delim(fl, header = FALSE)[[1]] |>
paste0(collapse = "\n")
pkg_lib <- stringr::str_extract_all(txt, pattern = "(?<=library\\().{1,}?(?=\\))")
pkg_req <- stringr::str_extract_all(txt, pattern = "(?<=require\\().{1,}?(?=\\))")
pkg_name <- stringr::str_extract_all(txt, pattern = "[a-z|A-Z|0-9]{1,}(?=\\:\\:)")
pkgs <- c(pkg_lib, pkg_req, pkg_name)
} else if (length(fl) > 1) {
pkgs <- sapply(fl, extract_pkgs)
}
pkgs |>
unlist(recursive = TRUE) |>
as.vector() |>
unique()
}make_pkg_table <- function(pkgs) {
# pkgs <- pkgs[sapply(pkgs, function(x) length(x) > 0)]
new_pkgs <- lapply(seq_along(pkgs), function(i) {
lesson_pkgs <- pkgs[[i]]
prev_lesson_pkgs <- unlist(head(pkgs,i-1))
!lesson_pkgs %in% prev_lesson_pkgs
})
ps <- sapply(seq_along(pkgs), function(idx) {
x <- pkgs[[idx]]
is_new <- ifelse(new_pkgs[[idx]], "**", "")
paste0(
glue::glue("[{is_new}`{x}`{is_new}](https://CRAN.R-project.org/package={x})"),
collapse = ", "
)
})
c("|Lesson|Packages|\n|----|----|\n", # header
glue::glue("|[{folder}](/{folder})|{ps}|\n\n",
folder = names(pkgs))) |>
paste0(collapse = "")
}get_src <- function(pkg) {
pd <- packageDescription(pkg)
if (is.null(src <- pd$Repository)) {
if (!is.null(src <- pd$GithubRepo)) {
src <- paste0("Github: ",pd$GithubUsername,"/",src)
} else {
src <- "Local version"
}
}
return(src)
}
```# Practical Applications in R for Psychologists
[![](https://img.shields.io/badge/Open%20Educational%20Resources-Compatable-brightgreen)](https://creativecommons.org/about/program-areas/education-oer/)
[![](https://img.shields.io/badge/CC-BY--NC%204.0-lightgray)](http://creativecommons.org/licenses/by-nc/4.0/)
[![](https://img.shields.io/badge/Language-R-blue)](http://cran.r-project.org/)*Last updated `r Sys.Date()`.*
This Github repo contains all lesson files for *Practical Applications in R for Psychologists*. The goal is to impart students with the basic tools to process data, describe data (w/ summary statistics and plots), and the foundations of **building, evaluating and comparing statistical models in `R`**, focusing on linear regression modeling (using both frequentist and Bayesian approaches).
These topics were taught in the graduate-level course ***Advanced Research Methods for Psychologists*** (Psych Dep., Ben-Gurion University of the Negev), laying the foundation for the following topic-focused courses:
- [Hierarchical linear models (*HLM*)](https://github.com/mattansb/Hierarchical-Linear-Models-foR-Psychologists)
- [Machine Learning (*ML*)](https://github.com/mattansb/Machine-Learning-foR-Psychologists)
- [Structural equation modelling (*SEM*)](https://github.com/mattansb/Structural-Equation-Modeling-foR-Psychologists)
- [Analysis of Factorial Designs (*ANOVA*)](https://github.com/mattansb/Analysis-of-Factorial-Designs-foR-Psychologists)**Notes:**
- This repo contains only materials relating to *Practical Applications in R*. Though statistics are naturally discussed in many lessons, the focus is generally on the application and not on the theory.
- Please note that some code does not work *on purpose* and without warning, to force students to learn to debug.## Setup
You will need:
1. A fresh installation of [**`R`**](https://cran.r-project.org/) (preferably version 4.1.1 or above).
2. [RStudio IDE](https://www.rstudio.com/products/rstudio/download/) (optional, but recommended).
3. The following packages, listed by lesson:```{r, echo=FALSE}
r_list <- list.files(pattern = ".(R|r)$", recursive = TRUE, full.names = TRUE) |>
Filter(f = \(x) !stringr::str_detect(x, pattern = "(SOLUTION|logo)"))lesson_names <- stringr::str_extract(r_list, pattern = "(?<=(/)).{1,}(?=(/))")
r_list <- split(r_list, lesson_names)
pkgs <- lapply(r_list, extract_pkgs)
print_pkgs <- make_pkg_table(pkgs)
````r print_pkgs`
*(Bold denotes the first lesson in which the package was used.)*
You can install all the packages used by running:
```{r echo=FALSE, comment = "", warning=FALSE}
unique_pkgs <- pkgs |>
unlist(recursive = TRUE) |>
unique() |> sort()packinfo <- installed.packages(fields = c("Package", "Version"))
# unique_pkgs[!is.element(unique_pkgs, rownames(packinfo))]
V <- packinfo[unique_pkgs,"Version"]
src <- sapply(unique_pkgs, get_src)cat("# in alphabetical order:")
cat("pkgs <-", dput(unique_pkgs) |> capture.output(), fill = 80) |>
capture.output() |>
styler::style_text()cat('install.packages(pkgs, repos = c("https://easystats.r-universe.dev", getOption("repos")))')
```Package Versions
Run on `r osVersion`, with R version `r packageVersion("base")`.
The packages used here:
```{r, echo=FALSE}
v_info <- paste0(glue::glue(" - `{unique_pkgs}` {V} (*{src}*)"), collapse = "\n")
````r v_info`