在计算平均值时处理NaN

时间:2014-01-23 22:28:47

标签: r nan mean calculated-columns

我想创建一个包含平均两个其他列的新列。
例如,原始表(dat)看起来像这样:

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

我现在想要一个平均A和B的列C,所以我尝试了以下

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

但我得到的是这个

    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

当我想要的是这个

    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

那么在处理数据集中的缺失值时如何计算这个新的平均值列呢?

1 个答案:

答案 0 :(得分:1)

您也可以

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

na.omit对于了解是否要创建更复杂的函数很有用,因为na.omit来自基数R,而na.rm是某些函数的参数。