[R] if else elseif for data frames
arun
smartpink111 at yahoo.com
Mon Aug 13 03:39:33 CEST 2012
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
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.
>>
>>
>
More information about the R-help
mailing list