删除在 'Value' 列中具有任何 'NA' 的 'Date' 行

Remove 'Date' rows having any 'NA' in the 'Value' column

我有一个包含多个时间序列的数据框。我想删除日期中所有具有 NA 值的数据。

数据框如下所示,

Date    Time    Value
1/1/2014    0:00    30
1/1/2014    1:00    20
1/1/2014    2:00    12
1/1/2014    3:00    NA
    .   
    .   
    .   
1/1/2014    23:00   23
2/1/2014    0:00    12
2/1/2014    1:00    23
2/1/2014    2:00    34
2/1/2014    3:00    43
    .   
    .   
    .   
2/1/2014    23:00   30
3/1/2014    0:00    34
3/1/2014    1:00    NA
3/1/2014    2:00    NA
3/1/2014    3:00    23
    .   
    .   
    .   
3/1/2014    23:00   45

我将删除日期中所有具有 NA 值的数据,以便数据框如下所示,

Date    Time    Value
2/1/2014    0:00    12
2/1/2014    1:00    23
2/1/2014    2:00    34
2/1/2014    3:00    43
    .   
    .   
    .   
2/1/2014    23:00   30

问题的措辞不清楚。如果这是为了删除在 'Value' 列

中具有 any 'NA' 的 'date' 行
library(data.table)
setDT(df)[, .SD[!any(is.na(Value))] , Date]
#       Date  Time Value
#1: 2/1/2014  0:00    12
#2: 2/1/2014  1:00    23
#3: 2/1/2014  2:00    34
#4: 2/1/2014  3:00    43
#5: 2/1/2014 23:00    30

可能有很多方法可以做到这一点,但这里有一个。查找与缺失 Value 关联的唯一 Date 值,并从最终选择中删除这些行:

dat[!dat$Date %in% unique(dat[is.na(dat$Value),"Date"]),]

       Date  Time Value
6  2/1/2014  0:00    12
7  2/1/2014  1:00    23
8  2/1/2014  2:00    34
9  2/1/2014  3:00    43
10 2/1/2014 23:00    30