[R] Change values of a column based on the values of a third

Jeff Newmiller jdnewmil at dcn.davis.CA.us
Mon Oct 5 18:42:09 CEST 2015


Either

Dat$c <- ifelse( "Y"==Dat$b, rep( "D", nrow(Dat) ), Dat$a )

Or (more efficiently)

Dat$c <- Dat$a
Dat$c[ "Y"==Dat$b ] <- "D"

Also, beware of creating data frames without using the stringsAsFactors=FALSE option if you plan to replace levels like this.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.

On October 5, 2015 9:10:29 AM PDT, IOANNA IOANNOU <ii54250 at msn.com> wrote:
>Hello all, 
>
> 
>
>I have a rather easy question. I want to add a column to the database
>which
>will change the values of vector a based on the values to vector b. Any
>ideas how?
>
> 
>
>For example:
>
> 
>
>Dat <- data.frame(a= c('A','A','C','B','D','D','B'),
>
>                                  b= c('N','N','Y','N','Y','N','N') )
>
> 
>
>I want to add a column c which will change 'C' to 'D' if column b is
>'Y'.
>
> 
>
>
>> Dat
>
>  a b c
>
>1 A N A
>
>2 A N A
>
>3 C Y D
>
>4 B N B
>
>5 C Y D
>
>6 C N C
>
>7 B N B
>
>	
>
>
>Any ideas?
>
> 
>
>Best, 
>
>ioanna
>
> 
>
>
>	[[alternative HTML version deleted]]
>
>______________________________________________
>R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>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