HI,
Much better solution:
library(car)
?set.seed(1)
?dat2<-data.frame(col1=c(sample(c("high","Neutral","low"),10,replace=TRUE)),col2=rep(NA,10))
?x<-dat2$col1
?dat2$col2<-recode(x,'"high"="H";"Neutral"="N";"low"="L"')
dat2
#????? col1 col2
#1???? high??? H
#2? Neutral??? N
#3? Neutral??? N
#4????? low??? L
#5???? high??? H
#6????? low??? L
#7????? low??? L
#8? Neutral??? N
#9? Neutral??? N
#10??? high??? H
A.K.
From: Sachinthaka Abeywardana <sachin.abeywardana at gmail.com>
To: arun <smartpink111 at yahoo.com>
Sent: Sunday, August 12, 2012 9:18 PM
Subject: Re: [R] if else elseif for data frames
To: arun <smartpink111 at yahoo.com>
Sent: Sunday, August 12, 2012 9:18 PM
Subject: Re: [R] if else elseif for data frames
yup looks good.
thanks?
Sachin
On Mon, Aug 13, 2012 at 11:17 AM, arun <smartpink111 at yahoo.com> wrote:
Hi,
>
>Try this,
>
>set.seed(1)
>?dat2<-data.frame(col1=c(sample(c("high","Neutral","low"),10,replace=TRUE)),col2=rep(NA,10))
>dat2$col2[dat2$col1=="high"]<-"H"
>?dat2$col2[dat2$col1=="Neutral"]<-"N"
>?dat2$col2[dat2$col1=="low"]<-"L"
>?dat2
>#????? col1 col2
>#1???? high??? H
>#2? Neutral??? N
>#3? Neutral??? N
>#4????? low??? L
>#5???? high??? H
>#6????? low??? L
>#7????? low??? L
>#8? Neutral??? N
>#9? Neutral??? N
>#10??? high??? H
>
>
>Not sure if this is okay for you,
>A.K.rr
>
>
>A.K.
>
>________________________________
>From: Sachinthaka Abeywardana <sachin.abeywardana at gmail.com>
>To: arun <smartpink111 at yahoo.com>
>Cc: R help <r-help at r-project.org>
>Sent: Sunday, August 12, 2012 9:07 PM
>Subject: Re: [R] if else elseif for data frames
>
>
>
>The thing is I have about 10 cases. I saw the ifelse statement but was wondering if there was a cleaner method of doing it. The coding will get really messy when I write all 10 cases.
>
>Cheers,
>Sachin
>
>
>On Mon, Aug 13, 2012 at 11:04 AM, arun <smartpink111 at yahoo.com> wrote:
>
>Hi,
>>Try this:
>>dat1<-data.frame(col1=c(rep("high",3),rep("Neutral",3),rep("low",4)))
>>?dat1$col2<-ifelse(dat1$col1=="high",dat1$col2<-"H",ifelse(dat1$col1=="Neutral",dat1$col2<-"N","L"))
>>dat1
>>????? col1 col2
>>1???? high??? H
>>2???? high??? H
>>3???? high??? H
>>4? Neutral??? N
>>5? Neutral??? N
>>6? Neutral??? N
>>7????? low??? L
>>8????? low??? L
>>9????? low??? L
>>10???? low??? L
>>
>>A.K.
>>
>>
>>
>>
>>
>>----- Original Message -----
>>From: Sachinthaka Abeywardana <sachin.abeywardana at gmail.com>
>>To: r-help at r-project.org
>>Cc:
>>Sent: Sunday, August 12, 2012 8:43 PM
>>Subject: [R] if else elseif for data frames
>>
>>Hi all,
>>
>>It seems like I cannot use normal 'if' for data frames. What would be the
>>best way to do the following.
>>
>>if data$col1='high'
>>? ? data$col2='H'
>>else if data$col1='Neutral'
>>? ? data$col2='N'
>>else if data$col='low'
>>? ?data$col2='L'
>>else
>>? ?#chuch a warning?
>>
>>
>>Note that col2 was not an existing column and was newly assigned for this
>>task.
>>
>>Thanks,
>>Sachin
>>
>>??? [[alternative HTML version deleted]]
>>
>>______________________________________________
>>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.
>>
>>
>