This tutorial explains how to apply functions on rows.

When we want to apply a function to the rows or columns of a matrix or data frame. It cannot be applied on lists or vectors.

**Sample Data**data = read.table(text="

X Y Z

6 5 0

6 3 NA

6 1 5

8 5 3

1 NA 1

8 7 2

2 0 2", header=TRUE)

**Apply Function**When we want to apply a function to the rows or columns of a matrix or data frame. It cannot be applied on lists or vectors.

apply arguments |

**Calculate maximum value across row**apply(data, 1, max)It returns NA if NAs exist in a row. To ignore NAs, you can use the following line of code.

apply(data, 1, max, na.rm = TRUE)

**Calculate mean value across row**apply(data, 1, mean)

apply(data, 1, mean, na.rm = TRUE)

**Calculate number of 0s in each row**apply(data == 0, 1, sum, na.rm= TRUE)

**Calculate number of values greater than 5 in each row**apply(data > 5, 1, sum, na.rm= TRUE)

**Select all rows having mean value greater than or equal to 4**df = data[apply(data, 1, mean, na.rm = TRUE)>=4,]

**Remove rows having NAs**helper = apply(data, 1, function(x){any(is.na(x))})It can be easily done with

df2 = data[!helper,]

**df2 = na.omit(data).**

**Count unique values across row**df3 = apply(data,1, function(x) length(unique(na.omit(x))))

Thanks ! can you do a tutorial about the apply family :) ?

ReplyDelete