2017-07-26 20 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你是對的。 –