[R] to modify a vector
hb at maths.lth.se
Mon Feb 10 02:57:03 CET 2003
Hi, if I understand you correctly, you would like to change the value of
all elements with current value of 3 to 9. This is how you do it:
a1 <- c(1,2,3,4,3,5)
idx <- (a1 == 3)
a1[idx] <- 9
or in one line
a1[a1 == 3] <- 9
Look at 'idx' above. It is a logical vector of the same length as 'a1',
idx: FALSE FALSE TRUE FALSE TRUE FALSE
When you then do 'a1[idx]' you select only those elements for which idx
is TRUE, here it is the third and the fifth. 'a1[idx] <- 9' selects
those elements and then assign the value 9 to them. Details: You could
also have done
idx <- which(a1 == 3)
where 'idx' then becomes equal to c(3,5), giving 'a1[c(3,5)] <- 9',
which gives identical results (of course).
Hope this helps
> -----Original Message-----
> From: r-help-admin at stat.math.ethz.ch
> [mailto:r-help-admin at stat.math.ethz.ch] On Behalf Of Mitsuo Igarashi
> Sent: den 8 februari 2003 17:42
> To: r-help at stat.math.ethz.ch
> Subject: [R] to modify a vector
> Hi All.
> I am quite a newbie to R.
> This is a basic question.
> I like to modify elements of a vector.
> For Example:
> a1 <- c(1,2,3,4,3,5)
> TThe following program sentence does not work but the intention is;
> if (a1==3) a1*3 .
> 3 in the vector should be changed to 9, and
> the resulted vector is (1,2,9,4,9,5).
> How can I get the result?
> Thanks in advance for help.
> mitsu5 at ruby.famille.ne.jp
> R-help at stat.math.ethz.ch mailing list
> http://www.stat.math.ethz.ch/mailman/listinfo/> r-help
More information about the R-help