使用“订单”时删除NA

时间:2011-05-10 18:17:21

标签: r

我有这个巨大的数据矩阵,包含年,月,日和降水的列,我需要订购,当降水量为NA时也会删除该行(每个月的第31天只发生30天和Februaries ......)在查阅了r帮助文件后,我使用了以下代码:

dat<- aa[order(aa$year, aa$month, aa$day, na.last=NA),] 

它完美地订购了我的数据,但我仍然拥有所有的NAs ...任何人都可以告诉我它为什么不起作用?

感谢

> head(dat)
    code year month                  station ALTITUD   PROV LONGITUD LATITUD day P1 id
1.1 3059 1940    11 ALBALATE DE LAS NOGUERAS     855 CUENCA   216372  402200   1  0  1
1.2 3059 1940    11 ALBALATE DE LAS NOGUERAS     855 CUENCA   216372  402200   2  0  1
1.3 3059 1940    11 ALBALATE DE LAS NOGUERAS     855 CUENCA   216372  402200   3  0  1
1.4 3059 1940    11 ALBALATE DE LAS NOGUERAS     855 CUENCA   216372  402200   4  0  1
1.5 3059 1940    11 ALBALATE DE LAS NOGUERAS     855 CUENCA   216372  402200   5  0  1
1.6 3059 1940    11 ALBALATE DE LAS NOGUERAS     855 CUENCA   216372  402200   6  0  1

2 个答案:

答案 0 :(得分:7)

na.last的{​​{1}}参数仅从通过order传递给NA的对象中删除order。您的...位于NA,而非aa$precipitationaa$yearaa$month,因此您需要:

aa$day

您可能需要考虑使用像zoo或xts这样的时间序列类来获取时间序列数据。

答案 1 :(得分:3)

因为na.last在订购时不会删除NA,所以NA是否应该是最后的na.omit(dat)。使用NA删除{{1}}。

希望有所帮助。