[R] Creat new column based on condition

Duncan Murdoch murdoch at stats.uwo.ca
Fri Apr 21 22:46:52 CEST 2006


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




More information about the R-help mailing list