[R] function ave() with seq_along returning char sequence instead of numeric

Nordlund, Dan (DSHS/RDA) NordlDJ at dshs.wa.gov
Mon Oct 31 23:29:01 CET 2016

Given  the following R statements

v <-  c('a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'c')
ave(v, list(v), FUN=seq_along)
 [1] "1" "2" "3" "1" "2" "3" "1" "2" "3" "4" 

I was expecting to get a numeric vector back.  I apparently have missed something in the documentation.  If vector v is character, then the numeric sequence is converted to character before returning.  I can work around by doing something like

ave(seq_along(v), list(v), FUN=seq_along)
 [1] 1 2 3 1 2 3 1 2 3 4 

Is the work around the best way to go, or have I missed an option in the documentation?



Daniel Nordlund, PhD
Research and Data Analysis Division
Services & Enterprise Support Administration
Washington State Department of Social and Health Services

More information about the R-help mailing list