On Fri, May 28, 2010 at 12:52 PM, Andre Easom <aea...@sportingindex.com> wrote:
> Hi,
>
> I'm a novice R user, much more used to SAS.  My problem is pretty simple - 
> basically, in a data frame, I have variables named
> x1,....,x10 and y1,...,y10; and I would like to create r1 = x1 / y1 etc
>
> Apologies if this is way too rudimentary - but I couldn't find any posts 
> online which solve this exact issue.

 Well, you can also access columns by number, so if you know what
columns your x's and y's are in you can do:

if you know the columns your x's and y's are in you can do it all at once:

3-column example:

 > foo=data.frame(x1=1:10,x2=1:10,x3=1:10,y1=10:1,y2=runif(10),y3=runif(10))

 > foo[,1:3]/foo[,4:6]
           x1        x2        x3
1   0.1000000  2.037364  4.242166
2   0.2222222 38.651953  2.475068
3   0.3750000  9.351609  4.682223
etc

you can then add this to your data frame:

 > foo=cbind(foo,foo[,1:3]/foo[,4:6])
 > foo
   x1 x2 x3 y1         y2        y3         x1        x2        x3
1   1  1  1 10 0.49083037 0.2357286  0.1000000  2.037364  4.242166
2   2  2  2  9 0.05174383 0.8080586  0.2222222 38.651953  2.475068
3   3  3  3  8 0.32080042 0.6407213  0.3750000  9.351609  4.682223
etc

and fix up the names:

 > names(foo)[7:9]=paste("r",1:3,sep="")
 > foo
   x1 x2 x3 y1         y2        y3         r1        r2        r3
1   1  1  1 10 0.49083037 0.2357286  0.1000000  2.037364  4.242166
2   2  2  2  9 0.05174383 0.8080586  0.2222222 38.651953  2.475068
3   3  3  3  8 0.32080042 0.6407213  0.3750000  9.351609  4.682223

Barry

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to