Description
R is a programming language primarily used for statistical computing and graphics. It allows users to manipulate data, perform statistical analyses, and create high-quality graphics. Users can start with basic arithmetic operations and data manipulation, then progress to more complex tasks like creating advanced plots, writing functions, and performing statistical tests. As proficiency increases, users can create reproducible reports, develop R packages, handle large datasets, and even interface R with other languages. Expert users can engage in parallel computing, develop interactive apps, apply machine learning algorithms, and contribute to the open-source community.
Expected Behaviors
Fundamental Awareness
At the fundamental awareness level, individuals are expected to understand the basics of R, be familiar with its syntax, and know the basic data types. They should also be able to install and load R packages and have an understanding of the R environment and workspace.
Novice
Novices should be able to perform basic arithmetic operations in R and understand and use vectors, matrices, lists, and data frames. They should have basic data manipulation skills such as sorting, filtering, and aggregating data, and be able to create simple plots using base R graphics. Understanding of control structures like if-else statements and loops is also expected.
Intermediate
Intermediate users should be proficient in data manipulation using the dplyr package and be able to create complex plots using the ggplot2 package. They should understand and apply statistical tests in R, write and debug R functions, and understand R's object-oriented systems and S3 classes.
Advanced
Advanced users should be proficient in creating reproducible reports using R Markdown and be able to develop and use R packages. They should understand and apply advanced statistical modeling techniques, handle large datasets using the data.table package, and interface R with other languages like C++ (using Rcpp).
Expert
Experts should be proficient in parallel computing in R and be able to develop shiny apps for interactive data visualization. They should understand and apply machine learning algorithms in R, be proficient in bioinformatics analysis using Bioconductor packages, and contribute to the R open source community.