Как запускать функции и игнорировать пропущенные значения, а не целые наблюдения? - PullRequest
3 голосов
/ 27 февраля 2012

У меня пропущены значения для многих случаев, и приведенный ниже код дает средние значения только для Дней, в которых есть значения для всех переменных.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 Ответ

3 голосов
/ 27 февраля 2012

В этом случае см. ?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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...