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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With