/R-Functional-Programming

The joy and power of functional programming in R

Creative Commons Attribution 4.0 InternationalCC-BY-4.0

Functional Programming with R

Functional programming is a core attribute of R programming. R provides many tools for creating and manipulating functions to accomplish tasks. The functional programming paradigm is also suitable for data science and academic research because code is organized into functions to perform needed operations, which makes the steps easier to understand, extend, and document.

Participants in this workshop will learn how to use functional programming concepts in base R and the purrr package to perform data wrangling, visualization, and modeling tasks.

Prior experience with R is helpful. We recommend that students feel comfortable with the skills taught in R Fundamentals.

Installation Instructions

We will use RStudio to go through the workshop materials, which requires installation of both the R language and the RStudio software.

  1. Download R: Follow the links according to the operating system that you are running. Download the package, and install R onto your compute. You should install the most recent version (at least version 4.0).

  2. Download RStudio: Install RStudio Desktop. This should be free. Do this after you have already installed R. The D-Lab strongly recommends an RStudio edition of 2022.02.0+443 "Prairie Trillium" or higher.

  3. Download these workshop materials:

    • Click the green "Code" button in the top right of the repository information.

    • Click "Download Zip".

    • Extract this file to a folder on your computer where you can easily access it (we recommend Desktop).

  4. Optional: If you are familiar with git, you can instead clone this repository by opening a terminal and entering

  5. Make sure that the following packages are installed on your computer

fs
here
tibble
tidyverse

Run the Code

Now that you have all the required software and materials, you need to run the code:

  1. Launch the RStudio software.

  2. Use the file navigator to find the R-Data-Wrangling folder that you downloaded.

  3. Open the R-Functional-Programming.Rproj by double clicking to open the code in an R project.

  4. Open up the file corresponding to the part of the workshop currently in focus.

  5. Place your cursor on a given line and press "Command + Enter" (Mac) or "Control + Enter" (PC) to run an individual line of code.

  6. The solutions folder contains the solutions to the challenge problems.

Is R not working on your laptop?

If you do not have R installed and the materials loaded for your workshop by the time it starts, we strongly recommend using the UC Berkeley DataHub to run the materials. You can access the DataHub by clicking Datauhb

The DataHub downloads this repository, along with any necessary packages, and allows you to run the materials in an RStudio instance on UC Berkeley's servers. No installation is necessary from your end--you only need an internet browser and a CalNet ID to log in. By using the DataHub, you can save your work and come back to it at any time. When you want to return to your saved work, go straight to DataHub, sign in, and click on the advanced-data-wrangling-in-R folder.

About the UC Berkeley D-Lab

D-Lab works with Berkeley faculty, research staff, and students to advance data-intensive social science and humanities research. Our goal at D-Lab is to provide practical training, staff support, resources, and space to enable you to use R for your own research applications. Our services cater to all skill levels and no programming, statistical, or computer science backgrounds are necessary. We offer these services in the form of workshops, one-to-one consulting, and working groups that cover a variety of research topics, digital tools, and programming languages.

Visit the D-Lab homepage to learn more about us. You can view our calendar for upcoming events, learn about how to utilize our consulting and data services, and check out upcoming workshops.

Other D-Lab R Workshops

Here are other R workshops offered by the D-Lab:

Contributors