[R] How to substract a valur from dataframe with condition

Peter Ehlers ehlers at ucalgary.ca
Tue Mar 22 08:49:46 CET 2011


On 2011-03-21 14:39, joe82 wrote:
> Hello All,
>
> I need help with my dataframe, it is big but here I am using a small table
> as an example.
>
> My dataframe df looks like:
>          X1      X2    X3
> 1   2011-02  0.00 96.00
> 2   2011-02  0.00  2.11
> 3   2011-02  2.00  3.08
> 4   2011-02  0.06  2.79
> 5   2011-02  0.00 96.00
> 6   2011-02  0.00 97.00
> 7   2011-02  0.08  2.23
>
> I want values in columns X2 and X3 to be checked if they are greater than
> 50, if yes, then subtract from '100'
>
> df should look like:
>
>         X1      X2    X3
> 1   2011-02  0.00 4.00
> 2   2011-02  0.00  2.11
> 3   2011-02  2.00  3.08
> 4   2011-02  0.06  2.79
> 5   2011-02  0.00 4.00
> 6   2011-02  0.00 3.00
> 7   2011-02  0.08  2.23
>

One more way:

  d <- transform(d,
                   X1 = pmin(X1, 100 - X1),
                   X2 = pmin(X2, 100 - X2))

[or use within() in place of transform()].

Peter Ehlers



More information about the R-help mailing list