Re: [R] conditional replacement

From: Marc Schwartz (via MN) <mschwartz_at_mn.rr.com>
Date: Wed 24 May 2006 - 04:49:46 EST

On Tue, 2006-05-23 at 11:40 -0700, Sachin J wrote:
> Hi
>
> How can do this in R.
>
> >df
>
> 48
> 1
> 35
> 32
> 80
>
> If df < 30 then replace it with 30 and else if df > 60 replace it
> with 60. I have a large dataset so I cant afford to identify indexes
> and then replace.
> Desired o/p:
>
> 48
> 30
> 35
> 32
> 60
>
> Thanx in advance.
>
> Sachin

One approach is to combine the use of two ifelse() statements:

> ifelse(df < 30, 30, ifelse(df > 60, 60, df))
[1] 48 30 35 32 60

Recall that if the condition (1st argument) is TRUE, then the second argument is evaluated and returned.

If the condition is FALSE, then the third argument is evaluated, which in this case is another ifelse(). The same logic follows within that function.

See ?ifelse

HTH, Marc Schwartz



R-help@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 Received on Wed May 24 05:03:05 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Wed 24 May 2006 - 06:10:19 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.