Apply a function to each row in a data frame in R

highBandWidth picture highBandWidth · Mar 16, 2011 · Viewed 64.2k times · Source

Possible Duplicate:
how to apply a function to every row of a matrix (or a data frame) in R

R - how to call apply-like function on each row of dataframe with multiple arguments from each row of the df

I want to apply a function to each row in a data frame, however, R applies it to each column by default. How do I force it otherwise?

> a = as.data.frame(list(c(1,2,3),c(10,0,6)),header=T)
> a
  c.1..2..3. c.10..0..6.
1          1          10
2          2           0
3          3           6
> sapply(a,min)
 c.1..2..3. c.10..0..6. 
          1           0 

I wanted something like

1   2
2   0
3   3

Answer

Leo Alekseyev picture Leo Alekseyev · Mar 16, 2011

You want apply (see the docs for it). apply(var,1,fun) will apply to rows, apply(var,2,fun) will apply to columns.

> apply(a,1,min)
[1] 1 0 3