[R] how to call a function for each row

2011-11-30 Thread arunkumar1111
Hi I have a data-frame which look like this X1 X2 X3 1 3 5 2 4 6 3 6 1 I want to apply a formula Y=6*X1 + 7*X2 + 8*X3 for every row Thanks in Advance -- View this message in context: http://r.789695.n4.nabble.com/how-to-call-a-function-for-each-row-tp4122906p4122906.html

Re: [R] how to call a function for each row

2011-11-30 Thread R. Michael Weylandt
Read ?apply This is easiest: df - matrix(c(1,2,3,3,4,6,5,6,1), 3) apply(df, 1, function(x) 6*x[1]+7*x[2]+8*x[3]) But it's much more efficient to do it with matrix multiplication. In keeping with the best of tradition, this is left as an exercise to the reader. Michael On Wed, Nov 30, 2011 at

Re: [R] how to call a function for each row

2011-11-30 Thread jim holtman
will this do it: x - read.table(text = X1 X2 X3 + 1 3 5 + 2 4 6 + 3 6 1, header = TRUE) x X1 X2 X3 1 1 3 5 2 2 4 6 3 3 6 1 apply(x, 1, function(a) 6 * a[1] + 7 * a[2] + 8 * a[3]) [1] 67 88 68 On Wed, Nov 30, 2011 at 8:10 AM, arunkumar akpbond...@gmail.com wrote: Hi

Re: [R] how to call a function for each row

2011-11-30 Thread Bert Gunter
Homework. ? I would say that this indiicates that you need to open the R tutorials and start reading. -- Bert On Wed, Nov 30, 2011 at 5:10 AM, arunkumar akpbond...@gmail.com wrote: Hi  I have  a data-frame which look like this X1 X2 X3 1   3  5 2   4  6 3   6  1 I want to apply a

Re: [R] how to call a function for each row

2011-11-30 Thread David L Carlson
Isn't this even easier? X1 - c(1:3) X2 - c(3, 4, 6) X3 - c(5, 6, 1) Y - 6*X1 + 7*X2 + 8*X3 Y [1] 67 88 68 Or if you really need a function: MakeY - function(x, y, z) 6*x + 7*y + 8*z MakeY(X1, X2, X3) [1] 67 88 68 -- David L Carlson Associate

Re: [R] how to call a function for each row

2011-11-30 Thread Florent D.
if you want to store the result in a column of your data.frame: within(df, Y - 6*X1+7*X2+8*X3) On Wed, Nov 30, 2011 at 9:59 AM, David L Carlson dcarl...@tamu.edu wrote: Isn't this even easier? X1 - c(1:3) X2 - c(3, 4, 6) X3 - c(5, 6, 1) Y - 6*X1 + 7*X2 + 8*X3 Y [1] 67 88 68 Or if you