如何运行函数并忽略缺失值,而不是整个观察?

时间:2012-02-27 16:28:12

标签: r

我在很多情况下都缺少值,下面的代码只给出了具有所有变量值的Days的方法。 newsap <- na.omit(sap)似乎省略了整个观察,而不仅仅是个别缺失值。即使有一些遗失的案例,我能做些什么来获得手段吗?

aggregate(cbind(BattV, Ptemp, Temp,RH, VPD)~Day,data=subset(sap,Time>=12 & Time<=14),mean)

Date    Day Time    Species Chamber BattV   Ptemp   Temp    RH  VPD 
6/14/10 165 12  1   1   12.92   30.09                       
6/14/10 165 12.1    1   1   12.93   30.57                       
6/14/10 165 12.2    1   1   12.93   31.12                       
6/14/10 165 12.3    1   1   12.93   31.55                       
6/14/10 165 12.4    1   1   12.93   31.72                       
6/14/10 165 12.5    1   1   12.93   31.79                       
6/14/10 165 13  1   1   12.92   31.76                       
6/14/10 165 13.1    1   1   12.92   31.69                       
6/14/10 165 13.2    1   1   12.91   31.62                       
...
7/19/10 200 11.1    1   1   12.09   27.4    30.35       72.688
7/19/10 200 11.2    1   1   12.09   27.72   30.541      70.128
7/19/10 200 11.3    1   1   12.09   27.94   30.279      70.775
7/19/10 200 11.4    1   1   12.09   28.2    30.638      71.988
7/19/10 200 11.5    1   1   12.09   28.62   30.67       69.848

1 个答案:

答案 0 :(得分:3)

在这种情况下,请参阅?mean并注意na.rm参数。您可以通过...中的?aggregate在聚合函数上传递额外参数,这样我们就可以在函数调用中指定na.rm = TRUE

aggregate(cbind(BattV, Ptemp, Temp,RH, VPD) ~ Day, 
          data=subset(sap,Time>=12 & Time<=14),
          mean, na.rm = TRUE)