[R] how to do a IF ELSE in a matrix format
Steven McKinney
smckinney at bccrc.ca
Tue Aug 3 04:56:32 CEST 2010
Here's one way:
edu[edu[, 1] < 0.5, 2] <- 1
> set.seed(1)
> edu<-matrix(0,1000,2)
> edu1<-runif(1000,0,1)
> edu[,1]<-edu1
> head(edu)
[,1] [,2]
[1,] 0.2655087 0
[2,] 0.3721239 0
[3,] 0.5728534 0
[4,] 0.9082078 0
[5,] 0.2016819 0
[6,] 0.8983897 0
> edu[edu[, 1] < 0.5, 2] <- 1
> head(edu)
[,1] [,2]
[1,] 0.2655087 1
[2,] 0.3721239 1
[3,] 0.5728534 0
[4,] 0.9082078 0
[5,] 0.2016819 1
[6,] 0.8983897 0
>
Steven McKinney
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Hey Sky
> Sent: August-02-10 6:17 PM
> To: r-help at r-project.org
> Subject: [R] how to do a IF ELSE in a matrix format
>
> 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
>
> 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 at 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.
More information about the R-help
mailing list