Hello,

One approach is using "ifelse":

> X <- data.frame(a=c(1,1,1,1,1,1), b=c(TRUE,TRUE,FALSE,FALSE,FALSE,TRUE), c=c(2,2,2,2,2,2))
> X
  a     b c
1 1  TRUE 2
2 1  TRUE 2
3 1 FALSE 2
4 1 FALSE 2
5 1 FALSE 2
6 1  TRUE 2
>
> X <- within(X, a <- ifelse(b==TRUE, c, a))
> X
  a     b c
1 2  TRUE 2
2 2  TRUE 2
3 1 FALSE 2
4 1 FALSE 2
5 1 FALSE 2
6 2  TRUE 2

Hope this helps,
Pascal


On 05/14/2013 05:06 PM, fgrelier wrote:

I have in a dataframe X  :  3 Variables X$a , X$b, X$c
I would like to replace in X the values of X$a by the values of  X$c but
only when X$b=="TRUE"
I have tried to put in place a loop but as I have a lot of rows it is very
very long to run.

Thanks for your help





--
View this message in context: 
http://r.789695.n4.nabble.com/Dataframe-and-conditions-tp4667012.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@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.


______________________________________________
R-help@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.

Reply via email to