[R] function ave() with seq_along returning char sequence instead of numeric
jdnewmil at dcn.davis.ca.us
Tue Nov 1 00:34:10 CET 2016
The help page describes the first argument x as a numeric... it is not designed to accept character, so the fact that you get anything even close to right is just a bonus.
As the doctor says, "if it hurts, don't do that".
ave( rep( 1, length( v ), v, FUN=seq_along )
Sent from my phone. Please excuse my brevity.
On October 31, 2016 3:29:01 PM PDT, "Nordlund, Dan (DSHS/RDA)" <NordlDJ at dshs.wa.gov> wrote:
>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" "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 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
>Daniel Nordlund, PhD
>Research and Data Analysis Division
>Services & Enterprise Support Administration
>Washington State Department of Social and Health Services
>R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>PLEASE do read the posting guide
>and provide commented, minimal, self-contained, reproducible code.
More information about the R-help