On Aug 2, 2010, at 9:16 PM, Hey Sky wrote:

Hey, Rers

I am new to R and this question may has been asked many times or a very old
one. I have checked

the archive but found nothing (maybe I used the wrong key words). any advise is
appreciated

the question is:

I try to replace a col vector with some other values, see

edu<-matrix(0,1000,2)

edu1<-runif(1000,0,1)
edu[,1]<-edu1

the colum vector edu[,1] would have value between 0 and 1. if I want to
replace the value of edu[,2]

to 1 if edu[,1] less than 0.5, how to do it in the form of matrix but not under
a loop structure?

I have tried:

if (edu[,1]>=0.5) edu[,2]=1

You have discovered that is not the right way and if you look at the help page for "if" you should see why (it doesn't vectorize).

Try:

edu[ edu[,1] < 0.5 ,1] <- 1

> min(edu[,1])
[1] 0.5001459

Or you could use ifelse, but I prefer vectorized solutions when they are clear.

--
David.

there is only the first 0.5 have been done but not all the others. thanks for
any kind answer.

Nan
from Montreal



______________________________________________
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.

David Winsemius, MD
West Hartford, CT

______________________________________________
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