Another another neat way is:
DF <- data.frame(x=1:4, y=rep(1,4))
foo <- function(z,x,y)z[x]+z[y]
apply(DF,1,foo,x="x",y="y")
DF <- data.frame(x=1:4, y=rep(1,4))
foo <- function(z)z<-x+y
foo(DF)
[1] 2 3 4 5
"Liaw, Andy" <andy_liaw at merck.com> wrote:
Another neat way is:
with(DF, foo(x, w))
HTH,
Andy
-----Original Message-----
From: peter leonard [mailto:pfleonard at hotmail.com]
Sent: Sunday, June 08, 2003 4:35 PM
To: r-help at stat.math.ethz.ch
Subject: [R] Basic question on applying a function to each row of a
dataframe
Hi,
I have a function foo(x,y) and a dataframe, DF, comprised of
two vectors, x
& w, as follows :
x w
1 1 1
2 2 1
3 3 1
4 4 1
etc
I would like to apply the function foo to each 'pair' within DF e.g
foo(1,1), foo(2,1), foo(3,1) etc
I have tried
apply(DF,foo)
apply(DF[,],foo)
apply(DF[DF$x,DF$w],foo)
However, none of the above worked. Can anyone help ?
Thanks in advance,
Peter