[R] Help with indexing

William Dunlap wdunlap at tibco.com
Sun Nov 22 01:41:17 CET 2009



Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Dana Sevak
> Sent: Saturday, November 21, 2009 4:00 PM
> To: r-help at r-project.org
> Subject: [R] Help with indexing
> 
> Dear R Helpers,
> 
> I am missing something very elementary here, and I don't seem 
> to get it from the help pages of the ave, seq and seq_along 
> functions, so I wonder if you could offer a quick help.
> 
> To use an example from an earlier post on this list, I have a 
> dataframe of this kind:
> 
> dat = data.frame(name = rep(c("Mary", "Sam", "John"), c(3,2,4))) 
> dat$freq = ave(seq_along(dat$name), dat$name, FUN = seq_along)
> 
> dat 
>   name freq
> 1 Mary    1
> 2 Mary    2
> 3 Mary    3
> 4  Sam    1
> 5  Sam    2
> 6 John    1
> 7 John    2
> 8 John    3
> 9 John    4
> 
> What I need is another column assigning a number to each name 
> starting from index 100, that is:
> 
>   name freq  nb
> 1 Mary    1 100
> 2 Mary    2 100
> 3 Mary    3 100
> 4  Sam    1 101
> 5  Sam    2 101
> 6 John    1 102
> 7 John    2 102
> 8 John    3 102
> 9 John    4 102
> 
> What is the easiest way to do this?

match() will do it:
   > match(names, unique(names)) + 99
   [1] 100 100 100 101 101 102 102 102 102

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> Thanks a lot for your kind help.
> 
> Dana
> 
> ______________________________________________
> R-help at 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.
> 




More information about the R-help mailing list