【发布时间】:2016-06-29 21:34:43
【问题描述】:
我有一个包含约 12000 个观察值的数据框,其中包含“代码”和“日期”两列。每个代码应该有 4 个观察值,因此应该有 4 个日期,但我在“日期”列中有缺失值(不是 NA,而是不存在的行)。
这是我的数据框的示例:
Station Date
7002 17/12/1966
7002 05/05/1968
7002 30/10/1968
7002 16/08/1970
7003 02/12/1966
7003 05/05/1968
7003 31/10/1968
8004 04/07/1968
8004 15/11/1968
8006 13/10/1966
8006 23/09/1967
8006 01/09/1968
[....]
我需要为每个代码检测缺失的行。
我使用的是“水年”,从 10 月 1 日开始,到下一个 9 月 30 日结束,例如1998 年 1 月 10 日 - 1999 年 9 月 30 日。 这是困难的事情,这使得我的问题与其他类似的问题不同。
所考虑的时间段从 1966 年 1 月 10 日到 1970 年 9 月 30 日(4 个水年),并且“日期”列中的观测值已经固定为水年(即每个水年一次观测值)。
我的输出应该是这样的: 例如
Station Date
7002 17/12/1966
7002 05/05/1968
7002 30/10/1968
7002 16/08/1970
7003 02/12/1966
7003 05/05/1968
7003 31/10/1968
7003 NA
8004 NA
8004 04/07/1968
8004 15/11/1968
8004 NA
8006 13/10/1966
8006 23/09/1967
8006 01/09/1968
8006 NA
[...]
【问题讨论】:
-
您说您有“12000 个观察值,包含“代码”和“日期”三列 - 这里只有两列。
-
抱歉,刚刚修复。
-
对于 8006 站,您在同一个水年有两个观测值。
-
eipi10 走了很远,提供了一个绝妙的解决方案。我唯一的意见是快速了解哪些电台缺少数据,您可以运行
table(unlist(dat$ID))[table(unlist(dat$ID)) < 4]- 这会让您知道哪些电台的条目少于 4 个,然后只需rbind()NA 那些特定电台的行。
标签: r na missing-data