### Course Description

Over the past few years, R has been steadily gaining popularity with business analysts, statisticians, and data scientists as a tool of choice for conducting statistical analysis of data as well as supervised and unsupervised machine learning.

## Course Objectives

This intensive training course helps students learn the practical aspects of the R programming language. The course is supplemented by many hands-on labs which allow attendees to immediately apply their theoretical knowledge in practice.

## Course Outline

1 - WHAT IS R

- What is R?
- Positioning of R in the Data Science Space
- The Legal Aspects
- Microsoft R Open
- R Integrated Development Environments
- Running R
- Running RStudio
- Getting Help
- General Notes on R Commands and Statements
- Assignment Operators
- R Core Data Structures
- Assignment Example
- R Objects and Workspace
- Printing Objects
- Arithmetic Operators
- Logical Operators
- System Date and Time
- Operations
- User-defined Functions
- Control Statements
- Conditional Execution
- Repetitive Execution
- Repetitive execution
- Built-in Functions
- Summary

2 - INTRODUCTION TO FUNCTIONAL PROGRAMMING WITH R

- What is Functional Programming (FP)?
- Terminology: Higher-Order Functions
- A Short List of Languages that Support FP
- Functional Programming in R
- Vector and Matrix Arithmetic
- Vector Arithmetic Example
- More Examples of FP in R
- Summary

3 - MANAGING YOUR ENVIRONMENT

- Getting and Setting the Working Directory
- Getting the List of Files in a Directory
- The R Home Directory
- Executing External R commands
- Loading External Scripts in RStudio
- Listing Objects in Workspace
- Removing Objects in Workspace
- Saving Your Workspace in R
- Saving Your Workspace in RStudio
- Saving Your Workspace in R GUI
- Loading Your Workspace
- Diverting Output to a File
- Batch (Unattended) Processing
- Controlling Global Options
- Summary

4 - R TYPE SYSTEM AND STRUCTURES

- The R Data Types
- System Date and Time
- Formatting Date and Time
- Using the mode() Function
- R Data Structures
- What is the Type of My Data Structure?
- Creating Vectors
- Logical Vectors
- Character Vectors
- Factorization
- Multi-Mode Vectors
- The Length of the Vector
- Getting Vector Elements
- Lists
- A List with Element Names
- Extracting List Elements
- Adding to a List
- Matrix Data Structure
- Creating Matrices
- Creating Matrices with cbind() and rbind()
- Working with Data Frames
- Matrices vs Data Frames
- A Data Frame Sample
- Creating a Data Frame
- Accessing Data Cells
- Getting Info About a Data Frame
- Selecting Columns in Data Frames
- Selecting Rows in Data Frames
- Getting a Subset of a Data Frame
- Sorting (ordering) Data in Data Frames by Attribute(s)
- Editing Data Frames
- The str() Function
- Type Conversion (Coercion)
- The summary() Function
- Checking an Object's Type
- Summary

5 - EXTENDING R

- The Base R Packages
- Loading Packages
- What is the Difference between Package and Library?
- Extending R
- The CRAN Web Site
- Extending R in R GUI
- Extending R in RStudio
- Installing and Removing Packages from Command-Line
- Summary

6 - READ-WRITE AND IMPORT-EXPORT OPERATIONS IN R

- Reading Data from a File into a Vector
- Example of Reading Data from a File into A Vector
- Writing Data to a File
- Example of Writing Data to a File
- Reading Data into A Data Frame
- Writing CSV Files
- Importing Data into R
- Exporting Data from R
- Summary

7 - STATISTICAL COMPUTING FEATURES IN R

- Statistical Computing Features
- Descriptive Statistics
- Basic Statistical Functions
- Examples of Using Basic Statistical Functions
- Non-uniformity of a Probability Distribution
- Writing Your Own skew and kurtosis Functions
- Generating Normally Distributed Random Numbers
- Generating Uniformly Distributed Random Numbers
- Using the summary() Function
- Math Functions Used in Data Analysis
- Examples of Using Math Functions
- Correlations
- Correlation Example
- Testing Correlation Coefficient for Significance
- The cor.test() Function
- The cor.test() Example
- Regression Analysis
- Types of Regression
- Simple Linear Regression Model
- Least-Squares Method (LSM)
- LSM Assumptions
- Fitting Linear Regression Models in R
- Example of Using lm()
- Confidence Intervals for Model Parameters
- Example of Using lm() with a Data Frame
- Regression Models in Excel
- Multiple Regression Analysis
- Summary

8 - DATA MANIPULATION AND TRANSFORMATION IN R

- Applying Functions to Matrices and Data Frames
- The apply() Function
- Using apply()
- Using apply() with a User-Defined Function
- apply() Variants
- Using tapply()
- Adding a Column to a Data Frame
- Dropping A Column in a Data Frame
- The attach() and detach() Functions
- Sampling
- Using sample() for Generating Labels
- Set Operations
- Example of Using Set Operations
- The dplyr Package
- Object Masking (Shadowing) Considerations
- Getting More Information on dplyr in RStudio
- The search() or searchpaths() Functions
- Handling Large Data Sets in R with the data.table Package
- The fread() and fwrite() functions from the data.table Package
- Using the Data Table Structure
- Summary

9 - DATA VISUALIZATION IN R

- Data Visualization
- Data Visualization in R
- The ggplot2 Data Visualization Package
- Creating Bar Plots in R
- Creating Horizontal Bar Plots
- Using barplot() with Matrices
- Using barplot() with Matrices Example
- Customizing Plots
- Histograms in R
- Building Histograms with hist()
- Example of using hist()
- Pie Charts in R
- Examples of using pie()
- Generic X-Y Plotting
- Examples of the plot() function
- Dot Plots in R
- Saving Your Work
- Supported Export Options
- Plots in RStudio
- Saving a Plot as an Image
- Summary

10 - USING R EFFICIENTLY

- Object Memory Allocation Considerations
- Garbage Collection
- Finding Out About Loaded Packages
- Using the conflicts() Function
- Getting Information About the Object Source Package with the pryr Package
- Using the where() Function from the pryr Package
- Timing Your Code
- Timing Your Code with system.time()
- Timing Your Code with System.time()
- Sleeping a Program
- Handling Large Data Sets in R with the data.table Package
- Passing System-Level Parameters to R
- Summary

11 - LAB EXERCISES

- Lab 1 - Getting Started with R
- Lab 2 - Learning the R Type System and Structures
- Lab 3 - Read and Write Operations in R
- Lab 4 - Data Import and Export in R
- Lab 5 - k-Nearest Neighbors Algorithm
- Lab 6 - Creating Your Own Statistical Functions
- Lab 7 - Simple Linear Regression
- Lab 8 - Monte-Carlo Simulation (Method)
- Lab 9 - Data Processing with R
- Lab 10 - Using R Graphics Package
- Lab 11 - Using R Efficiently

**There are no prerequisites for this course.**

### Course Information

Length: **2 day**

Format: **Lecture and Lab**

Delivery Method: **n/a**

Max. Capacity:
**16**

Schedule

Contact Us