He everybody,

I want to add 1 to some elements of  a vector:

x is a vector
u is a vector of idices, that is, integers
assumed to be within the range 1..length(x)
and I want to add 1 to the elements of x
each time their index appears in u

x[u]<-x[u]+1 works only when there are no
duplicated values in u

I found this solution:

tu <- table(u)
indices <- as.numeric(names(tu))
x[indices] <- x[indices]+tu

but it looks ugly to me and I would
prefer to avoid calling the function 'table'
since this is to be done millions of times
as part of a simulation program.

Eric Elguero
Génétique & Adaptation des Plasmodium
IRD
Montpellier - FRance

______________________________________________
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