# R

**R** ( http://www.r-project.org/) is an open source software - a well organized and sophisticated package - that facilitates data analysis, modeling, inferential testing and forecasting. It is a user friendly software which allows to create new function commands to solve statistical problems. It runs on a variety of UNIX platforms (and similar systems such as LINUX), Windows and Mac OS.

**R** is the most preferred open-source language for analytics and data science. At Microsoft, R is used by its data scientists, who apply machine learning to data from Bing, Azure, Office, and the Sales, Marketing, and Finance departments. Twitter has been using R for measuring user-experience. On the other hand, the cross-platform compatibility of R and its capacity to handle large and complex data sets make it an ideal tool for academicians to analyze data in their labs.

**R** can be used for simple calculations, matrix calculations, differential equations, optimisation, statistical analysis, plotting graphs, etc. Also, it is useful to anybody who wishes to undertake extensive statistical computations and data visualization.

The spoken tutorials (ST) for R series was initially created by **Prof. Kannan Moudgalya, IIT Bombay**. Later, the domain expert for this series was **Prof. Radhendushka Srivastava, Maths Dept. IIT Bombay**. Content for this series was contributed by FOSSEE Fellows 2018 Shaik Sameer and Varshit Dubey and the tutorials were recorded by Sudhakar Kumar, M.Tech student IIT Bombay. Overall coordination for the series was done by Smita Wangikar from FOSSEE project, IIT Bombay. Madhuri Ganapati and Vidhya Iyer from Spoken Tutorial project, IIT Bombay, were the reviewers from ST end.

**Learners:** Analysts, researchers, statistics students

**Note:** Each numbered topic corresponds to a single spoken tutorial. Each bulleted point corresponds to a command or topic that must be covered in the given spoken tutorial.

**Overview of R and RStudio**- About
**R**programming language - Features of
**R** - Applications of
**R** - Discuss the contents available on the
**R**Project website - Use the command-line interface of
**R** - About
**RStudio** - Features of
**RStudio** - Discuss the contents available on the
**RStudio**website - Explain the interface of
**RStudio** - Topics covered in this series

- About
**Installing R and RStudio on Linux**- Install
**R**on Linux - Use the command-line interface of
**R** - Show the value of the exponential function in R
- Install
`wget`

utility - Install
`gdebi`

utility - Install
**RStudio**on Linux - Launch
**RStudio**on Linux - Run a plot in
**RStudio** - View packages in
**RStudio** - Install packages

- Install
**Installing R and RStudio on Windows**- Install R on Windows 10
- Launch R
- Use command-line-interface of R
- Run an
`exp`

command in R - Install
**RStudio**on Windows - Launch
**RStudio**on Windows - Run a plot in
**RStudio** - Install packages

**Introduction to basics of R**- Version of
**R**and**RStudio**used - Operating systems on which these run
- Quick intro to
**R**and**RStudio** - Resizing the font and window size
- Using
`+`

,`-`

,`^`

,`sqrt`

- Using
`exp`

,`log`

,`sin`

- Different ways of invoking
`log`

- Vectors using
`seq`

and`length`

- Using
`pi`

- Plotting a
`sine`

function - Defining more points to get a smooth plot
- Plotting with points and as line
- Introduction to
**help**

- Version of
**Introduction to data frames in R**- Storing captaincy information in
**vectors** - Constructing a
**data frame**using**vectors** - Plotting one vector of a
**data frame**vs. another one - Adding a vector to a
**data frame** - Saving a data frame into a
**csv**file - Preventing the writing of row numbers into the
**csv**file - Changing the contents of a
**csv**file through a text editor - Loading a
**csv**file into a**data frame** - Accessing the data sets that come with
**R**

- Storing captaincy information in
**Introduction to RStudio**- Features of
**RStudio** - A look at the windows in
**RStudio**interface:**Source**and**Console**windows**Workspace**window**Plots**and**Files**window

- Example to plot a simple data set
- Introduction to packages in
**R** - How to find the list of packages installed in
**R** - Installation of
**R**packages in**RStudio** - Loading and using
**R**packages

- Features of
**Introduction to R script**- What is an
**R**script - Features of
**R**script - How to create and save an
**R**script from the user interface (UI) of**RStudio** - Shortcut keys to create an
**R**script - How to use auto-completion of commands
- How to run an entire script
- How to run a block of a script
- How to add comments
- How to comment an existing line
- How to load one script into another script

- What is an
**Working Directories in RStudio**- What is working directory in
**R** - How to know current working directory
- How to use
`getwd`

function - How to set a working directory from the user interface of
**RStudio** - How to set a working directory from the
**Console**window of**RStudio** - How to use
`setwd`

function - How to read and store a
**csv**file in**R** - How to use
`read.csv`

function - How to view a stored
**csv**file in**R** - How to use
`View`

function

- What is working directory in
**Indexing and Slicing Data Frames**- Shortcut key for assignment operator (
`<-`

) - How to perform numeric indexing
- How to extract a row or column from a data frame
- How to retrieve multiple rows from a data frame
- How to combine objects to form a vector
- How to perform logical indexing on a data frame
- How to perform name indexing on a data frame
- How to slice a data frame using
`subset`

function - How to select required columns (by name) from a data frame
- How to retrieve data using double square brackets

- Shortcut key for assignment operator (
**Creating Matrices using Data Frames**- Data required in a matrix format
- Convert a data frame into a matrix
- Create a matrix with known data
- Add two matrices
- Subtract two matrices
- Multiply two matrices element wise
- Perform true matrix multiplication
- Calculate the transpose of a matrix
- Calculate the determinant of a matrix

**Operations on Matrices and Data Frames**- How to find the inverse of a matrix
- How to calculate the sum of elements in a matrix using
`for`

loop - How to calculate the sum of elements in a matrix using
`sum`

function - How to calculate the time elapsed in an operation
- How to find out the sum of rows of a matrix
- How to find out the sum of columns of a matrix
- How to add a new column or row to an existing data-frame
- How to use
`cbind`

and`rbind`

function

**Merging and Importing Data**- Use of built-in functions in
**R**for exploring a data frame - Access help in
**RStudio** - Advantages of merging data frames
- Merge two data frames
- Import data from the command line
- Import
`xml`

file and`txt`

file in R - Import data from the user interface of
**RStudio**

- Use of built-in functions in
**Data Types and Factors**- What is an object in
**R** - Types of
**R**- objects - What is an atomic vector in
**R** - Types of atomic vectors
- How to find types of vectors
- Factors in
**R** - Levels of a factor in
**R** - Identification of categorical variables
- How to change the type of a vector
- How to change the values of levels

- What is an object in
**Lists and its Operations**- Lists in
**R** - Atomic vectors in
**R** - Difference between atomic vectors and lists in
**R** - How to create a list
- How to assign names to the elements of a list
- Named list in
**R** - How to access elements of a list by its index
- How to access an element of a list by its name
- How to access an element of an element of a list
- Combine two different lists

- Lists in
**Plotting Histograms and Pie Chart**- How to find the dimensions of a data frame
- Define a histogram
- Plot a histogram in
**R** - Add labels to the histogram
- Add color to the bins of a histogram
- Change the number of breaks in the histogram
- Define a pie chart
- Plotting a pie chart in
**R** - Add a label to the pie chart
- Saving the plot as an image

**Plotting Bar Charts and Scatter Plot**- What is a bar chart
- Draw a bar chart
- Use the
`barplot`

function - Add labels to the bar chart
- Adjust the labels of the bar chart
- What is a scatter plot
- Draw a scatter plot
- Use
`plot`

function with two objects - Find the correlation coefficient
- Range of correlation coefficient

**Introduction to ggplot2**- Define visualization
- About grammar of graphics -
**ggplot2** - Use of the
`plot`

function - Add labels to a plot
- Change the color and type of plot
- Plot two graphs in the same plot
- Add a legend to the plot
- About
**ggplot2**package - Draw a scatter plot using
`ggplot`

function - Save plots using
`ggsave`

function

**Aesthetic Mapping in ggplot2**- Define aesthetic
- Need for aesthetic in plotting
- Draw a scatter plot
- Customize a scatter plot
- View the structure of an object
- View the levels of a categorical variable
- Draw a bar chart using
`ggplot`

- Add labels to a plot in
`ggplot`

- Use the
`fill`

argument in aesthetic mapping - Draw a histogram using
`ggplot`

**Data Manipulation using dplyr Package**- What is data visualization
- Need for data manipulation
- What is
**dplyr**package - Functions in
**dplyr**package - Install
**dplyr**package - Use
`filter`

function - Use
`filter`

function with a logical operator - Use
**match**operator - Use
`arrange`

function for ascending order - Use
`arrange`

function for descending order

**More functions in the dplyr Package**- Functions in the
**dplyr**package - Select multiple variables in a data frame
- Remove variables from a data frame
- Use of
`select`

function - Use of
`starts_with`

function - Change the name of a variable
- Use of
`rename`

function - Create a new variable from existing variables
- Use of
`mutate`

function - Property of
`mutate`

function

- Functions in the
**Pipe Operator**- About
`summarise`

function in**dplyr**package - About
`group_by`

function in**dplyr**package - Difference between
`summarise`

and`group_by`

functions - Use
`summarise`

and`group_by`

functions together - About
**pipe**operator - Examples of
**pipe**operator - Benefits of using
**pipe**operator - Use
**ggplot2**and**dplyr**package together using**pipe** - Plot
**boxplot** - Use
`count`

in`summarise`

function

- About
**Conditional Statements**- About conditional statements
- Syntax of
`if`

,`else`

and`else if`

statements - Use
`if`

,`else`

and`else if`

statements - Use
`ifelse`

function - Arguments of
`ifelse`

function - Add a new column in an existing data frame
- Read and store a
`csv`

file - View a data frame
- Count true values in a column
- Use
`sum`

function

**Functions in R**- About functions
- About
**built-in**functions and**user-defined**functions - Need for
**user-defined**functions - Syntax of a function
- Parts of a function
- Create a
**user-defined**function with arguments - Create a
**user-defined**function without arguments - About
`readline`

function - Scope of variables
- Use the
`return`

function