4 R Tutorial DPLYR Apply Function

Post on 13-Apr-2017

1.610 views 0 download

Transcript of 4 R Tutorial DPLYR Apply Function

R ProgrammingSakthi Dasan Sekar

http://shakthydoss.com 1

Apply functions

Apply functions in R

apply lapply sapply tapply vapply mapply

These functions usually have apply in there name. They used to apply a specify function to each column or row to R objectsThey are much more helpful than a for or while loops.

http://shakthydoss.com 2

Apply functions

apply

It is used to apply a function to a matrix in row wise or column wise.

Returns a vector or array or list.

apply(x, margin, function)

It takes minimum three arguments 1. matrix / array 2. margin 3. function

http://shakthydoss.com 3

Apply functions

apply

apply(x, margin, function)

margin - tells whether function need to apply for row or column

margin = 1 indicates function need to apply for row

margin = 2 indicates function need to apply for column

function can be mean, sum, average etc.

http://shakthydoss.com 4

Apply functions

apply

Example

m <- matrix( c(1,2,3,4),2,2 )

apply(m,1,sum)

returns a vector containing sum of rows in the matrix in m

returns a vector containing sum of column in the matrix in m

apply(m,2,sum)

http://shakthydoss.com 5

Apply functions

lapply

lapply function takes list as argument and apply the function by looping through each element in the list.

Returns a list.

lapply(list, function)

It takes minimum two argument1. List 2. function

http://shakthydoss.com 6

Apply functions

lapply

Example

list <- list(a = c(1,1), b=c(2,2), c=c(3,3))

lapply(list,sum)

Returns a list containing sum of a,b,c.

lapply(list,mean)

Returns a list containing mean of a,b,c.

http://shakthydoss.com 7

Apply functions

sapply

sapply(list, func)

It takes minimum two argument

1. list

2. function

sapply does every thing similar to lappy expect that sapply can simplify retuning object.

If the result is list and every element in list is of size 1 then vector is retuned.

If the restult is list and every element in list is of same size (>1) then matrix is returned.

Other wise result is retuned as a list itself.

http://shakthydoss.com 8

Apply functions

sapply

Example

list <- list(a = c(1,1), b=c(2,2), c=c(3,3))

sapply(list,sum)

Returns a vector containing sum of a,b,c.

list <- list(a = c(1,2), b=c(1,2,3), c=c(1,2,3,4))

sapply(list, range)

Returns a matrix containing min and max of a,b,c.

http://shakthydoss.com 9

Apply functions

tapply

tapply works on vector, It apply the function by grouping factors inside the vector.

tapply(x, factor, fun)

It takes minimum three arguments 1. vector

2. factor of vector

3. function

http://shakthydoss.com 10

Apply functions

tapply

Example

age <- c(23,33,28,21,20,19,34)

gender <- c("m","m","m","f","f","f","m")

f <- factor(gender)

tapply(age,f,mean)

Returns the mean age for male and female.

http://shakthydoss.com 11

Apply functions

vapply

vapply works just like sapply except that you need to specify the type of return value (integer, double, characters).vapply is generally safer and faster than sapply. Vapply can save some time in coercing returned values to fit in a single atomic vector.

vapply(x, function, FUN.VALUE)It takes minimum three arguments 1. list 2. function 3. return value (integer, double, characters)

http://shakthydoss.com 12

Apply functions

vapply

Example

list <- list(a = c(1,1), b=c(2,2), c=c(3,3))

vapply(list, sum, FUN.VALUE=double(1))

http://shakthydoss.com 13

Apply functions

mapply

mapply is a multivariate version of sapply. mapply applies FUN to the first elements of each ... argument, the second elements, the third elements, and so on. Arguments are recycled if necessary.

mapply(FUN, ...)

http://shakthydoss.com 14

Apply functions

Example

list(rep(1, 4), rep(2, 3), rep(3, 2), rep(4, 1))

We see that we are repeatedly calling the same function (rep) where the first argument varies from 1 to 4, and the second argument varies from 4 to 1. Instead, we can use mapply:

mapply(rep, 1:4, 4:1)

which will produce the same result.

http://shakthydoss.com 15

dplyr package

dplyr overview

dplyr is a powerful R-package to transform and summarize tabular data with rows and columns.

By constraining your options, it simplifies how you can think about common data manipulation tasks.

It provides simple “verbs”, functions that correspond to the most common data manipulation tasks, to help you translate those thoughts into code.

It uses efficient data storage backends, so you spend less time waiting for the computer.

http://shakthydoss.com 16

dplyr package

dplyr is grammar for data manipulation.

It provides five verbs, basically function that can be applied on the data set

1. select - used to select rows in table or data.frame

2. filter - used to filter records in table or data.frame

3. arrange - used for re arranging the table or data.frame

4. mutate - used for adding new data

5. summarize - states the summary of data

http://shakthydoss.com 17

dplyr package

dplyr installation

dplyr is not one among the default package, you have to install them separately

install.packages("dplyr")

loading dplyr into memory

library(dplyr)

http://shakthydoss.com 18

dplyr package

dplyr - Select

Often you work with large datasets with many columns but only a few are actually of interest to you. select function allows you to rapidly select only the interest columns in your dataset.

To select columns by nameselect(mtcars, mpg, disp)

To select a range of columns by name, use the “:” (from:to) operatorselect(mtcars, mpg:hp)

http://shakthydoss.com 19

dplyr package

dplyr - Select

To select with columns and row with string match.

select(iris, starts_with("Petal"))

select(iris, ends_with("Width"))

select(iris, contains("etal"))

select(iris, matches(".t."))

http://shakthydoss.com 20

dplyr package

dplyr - Select

You can rename variables with select() by using named arguments.

Example

select(mtcars, miles_per_gallon = mpg)

http://shakthydoss.com 21

dplyr package

dplyr - filter

Filter function in dplyr allows you to easily to filter, zoom in and zoom out of data your are interested.

filter(data, condition,..)

Simple filter

filter(mtcars, cyl == 8)

filter(mtcars, cyl < 6)

http://shakthydoss.com 22

dplyr package

dplyr - filter

Multiple criteria filter

filter(mtcars, cyl < 6 & vs == 1)

filter(mtcars, cyl < 6 | vs == 1)

Comma separated arguments are equivalent to "And" condition

filter(mtcars, cyl < 6, vs == 1)

http://shakthydoss.com 23

dplyr package

dplyr - arrange

arrange function basically used to arrange the data in specify order.

You can use desc to arrange the data in descending order.

arrange(data, ordering_column )

http://shakthydoss.com 24

dplyr package

dplyr - arrange

Example

Range the data by cyl and disp

arrange(mtcars, cyl, disp)

Range the data by descending order of disp

arrange(mtcars, desc(disp))

http://shakthydoss.com 25

dplyr package

dplyr - mutate

mutate function helps to adds new variables to existing data set.

Example

mutate(mtcars, my_custom_disp = disp / 1.0237)

my_custom_disp will be added to mtcars dataset.

http://shakthydoss.com 26

dplyr package

dplyr - summarise

dplyr summarise function help to Summarise multiple values to a single value in the dataset.

summarise(mtcars, mean(disp))

summarize with group functionsummarise(group_by(mtcars, cyl), mean(disp))summarise(group_by(mtcars, cyl), m = mean(disp), sd = sd(disp))

http://shakthydoss.com 27

dplyr package

dplyr - summarise

List of Summary function that can be used inside dplyr summarise

mean, median, mode, max, min, sun, var, length, IQR

First - returns the first element of vector last - returns the last element of vector nth(x,n) - The 'n' the element of vector n() - the number of rows in the data.framen_distinct(x) - the number of unique value in vector x

http://shakthydoss.com 28

DPLYR & APPLY FUNCTION

Knowledge Check

http://shakthydoss.com 29

DPLYR & APPLY FUNCTION

Apply functions in R used to apply a specify function to each column or row to R objects.

A. TRUE

B. FALSE

Answer A

http://shakthydoss.com 30

DPLYR & APPLY FUNCTION

Which one of the following is true about function apply(x, margin, function)

A. When margin = 2 it indicates function need to apply for row.

B. When margin = 1, it indicates function need to apply for row.

C. x must be of type list.

D. only arithmetic functions can be passed into apply function.

Answer B

http://shakthydoss.com 31

DPLYR & APPLY FUNCTION

Define lapply.

A. lapply function takes list as argument and apply the function by looping through each element in the list.

B. lapply function takes list, array or matrix and apply the function by looping through each element in the list.

C. lapply is not standalone. it should with apply function.

D. lapply is used when latitude and longitude comes into to picture.

Answer A

http://shakthydoss.com 32

DPLYR & APPLY FUNCTION

dplyr is a powerful R-package to transform and summarize tabular data with rows and columns. It also refered as grammar for data manipulation.

A. TRUE

B. FALSE

Answer A

http://shakthydoss.com 33

DPLYR & APPLY FUNCTION

How do you rearrange the order of column in data set using dplyrfunctions.

A. order_data(data, ordering_column)

B. sort_data(data,ordering_column)

C. dplyr(data,ordering_column)

D. arrange(data, ordering_column)

Answer D

http://shakthydoss.com 34