atreju
atreju

Reputation: 995

Apply an operation to some elements of a vector by using indices

I've got a fairly basic question concerning vector operations in R. I want to apply a certain operation (i.e. increment) to specific elements of a vector by using a vector containing the indices of the elements.

For example:

ind <- c(2,5,8)
vec <- seq(1,10)

I want to add 1 to the 2nd, 5th and 8th element of vec. In the end I'd like to have:

vec <- c(1,3,3,4,6,6,7,9,8,10)

I tried

vec[ind] + 1
but that returns only the three elements. I could use a for-loop, of course, but knowing R, I'm sure there's a more elegant way.

Any help would be much appreciated.

Upvotes: 0

Views: 134

Answers (1)

akrun
akrun

Reputation: 886938

We have to assign it

 vec[ind] <- vec[ind] + 1
 vec
 #[1]  1  3  3  4  6  6  7  9  9 10

Upvotes: 3

Related Questions