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.