Dealing with NaN when calculating means

27,880

You can also do

dat$C <- apply(dat,1,function(x) mean(na.omit(x)))

na.omit is useful to know if you want to make a more complex function since na.omit is from base R while na.rm is an argument for certain functions.

Share:
27,880
melanopygus
Author by

melanopygus

Updated on July 09, 2022

Comments

  • melanopygus
    melanopygus almost 2 years

    I want to create a new column that contains the average two other columns.
    For example by original table (dat) looks like this:

        A   B
    1   1   NaN
    2   3   2
    3   2   5
    4   4   4
    5   6   NaN
    6   5   3
    

    I now want a column C that averages A and B, so I tried the following

    dat$C<-(dat$A + $dat$B)/2
    

    But what I get is this

        A   B     C
    1   1   NaN   NaN
    2   3   2     2.5
    3   2   5     3.5
    4   4   4     4
    5   6   NaN   NaN
    6   5   3     4
    

    When what I want is this

        A   B     C
    1   1   NaN   1
    2   3   2     2.5
    3   2   5     3.5
    4   4   4     4
    5   6   NaN   6
    6   5   3     4
    

    So how can I calculate this new mean value column while working around the missing values in my dataset?