[R] Creat new column based on condition
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Fri Apr 21 23:23:57 CEST 2006
Duncan Murdoch <murdoch at stats.uwo.ca> writes:
> On 4/21/2006 4:05 PM, Sachin J wrote:
> > Hi,
> >
> > How can I accomplish this task in R?
> >
> > V1
> > 10
> > 20
> > 30
> > 10
> > 10
> > 20
> >
> > Create a new column V2 such that:
> > If V1 = 10 then V2 = 4
> > If V1 = 20 then V2 = 6
> > V1 = 30 then V2 = 10
>
> Gabor's solution is fine; something that looks a little bit more like
> your code is this:
>
> V2 <- NA
> V2 <- ifelse( V1 == 10, 4, V2)
> V2 <- ifelse( V1 == 20, 6, V2)
> V2 <- ifelse( V1 == 30, 10, V2)
>
> or
>
> V2 <- ifelse( V1 == 10, 4,
> ifelse( V1 == 20, 6,
> ifelse( V1 == 30, 10, NA )))
>
> (where the NA is to handle any unexpected case where V1 isn't 10, 20 or
> 30). My preference would be to use just one assignment, and if I was
> sure 10, 20 and 30 were the only possibilities, would use
>
> V2 <- ifelse( V1 == 10, 4,
> ifelse( V1 == 20, 6, 10 ))
>
> Duncan Murdoch
I think I'd go for something like
V2 <- c(4, 6, 10)[factor(V1, levels=c(10, 20, 30))]
> > So the O/P looks like this
> >
> > V1 V2
> > 10 4
> > 20 6
> > 30 10
> > 10 4
> > 10 4
> > 20 6
> >
> > Thanks in advance.
> >
> > Sachin
> >
> > __________________________________________________
> >
> >
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list