2017-07-26 65 views
0

我有一个数据框与多个时间序列。我想删除日期中具有NA值的所有数据。删除'数值'列有'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 
+0

好吧,是我不好,是不是重复。在这里你想删除所有的行,至少有一行是NA。 – Rumid

+1

这不是重复的。 – TUSHAr

+1

我重新开放,因为它不是重复的。所有值都需要从组中删除,如果其中一个是NA – Sotos

回答

2

可能很多方法可以做到这一点,但这里有一个。找到失踪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 
2

目前尚不清楚有关问题中的措词。如果这意味着在“价值”列除去具有any“NA”“日期”行

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 
+4

我想他们想删除那个日期的任何'Value'为'NA'的整个Date。即“1/1”和“3/1”似乎完全被删除。 – thelatemail

+0

@thelatemail谢谢,你是对的 – akrun

+0

感谢您的评论。 @akrun你是对的。 –