2014-10-28 25 views
0

我有一個數據幀,我想聚集,除去行不NA(或選擇唯一行)在列我想使用聚集骨料中的R只保留一個值

在以下

即我可能要在哪一週有NA的數據幀刪除每一行,並保持其他不變:

OTHER_REV  month quarter year  week  date  days daysinmonth 
1   2785013  1 2009 Q1 2009 2009-01-05 2009-01-05 2009-01-05   31 
2   2785013  1 2009 Q1 2009 2009-01-12 2009-01-05 2009-01-05   31 
3   2785013  1 2009 Q1 2009 2009-01-19 2009-01-05 2009-01-05   31 
4   2785013  1 2009 Q1 2009 2009-01-26 2009-01-05 2009-01-05   31 
5   2785013  1 NA QNA 2009  <NA> 2009-01-16 2009-01-16   31 
6   2785013  1 NA QNA 2009  <NA> 2009-01-17 2009-01-17   31 

生產:

OTHER_REV  month quarter year  week  date  days daysinmonth 
1   2785013  1 2009 Q1 2009 2009-01-05 2009-01-05 2009-01-05   31 
2   2785013  1 2009 Q1 2009 2009-01-12 2009-01-05 2009-01-05   31 
3   2785013  1 2009 Q1 2009 2009-01-19 2009-01-05 2009-01-05   31 
4   2785013  1 2009 Q1 2009 2009-01-26 2009-01-05 2009-01-05   31 

我一直在使用GRE的組合嘗試P和唯一的(數據$東西),並使用聚合,但這兩種方法似乎都不起作用。

以下是數據的STR:

'data.frame': 1896 obs. of 34 variables: 
$ OTHER_REV  : num 2785013 2785013 2785013 2785013 2785013 ... 
$ month     : num 1 1 1 1 1 1 1 1 1 1 ... 
$ quarter    :Class 'yearqtr' num [1:1896] 2009 2009 2009 2009 NA ... 
$ year     : num 2009 2009 2009 2009 2009 ... 
$ week     : Date, format: "2009-01-05" "2009-01-12" "2009-01-19" "2009-01-26" ... 
$ date     : Date, format: "2009-01-05" "2009-01-05" "2009-01-05" "2009-01-05" ... 
$ days     : Date, format: "2009-01-05" "2009-01-05" "2009-01-05" "2009-01-05" ... 
$ daysinmonth   : int 31 31 31 31 31 31 31 31 31 31 ... 

調用上DF $本週唯一生產:使用數據

data[ ! is.na(data$week), ] 

類似的答案:

[1] "2009-01-05" "2009-01-12" "2009-01-19" "2009-01-26" NA   "2009-02-02"...... 
+5

試試'df [!is.na(df $ week),]' – akrun 2014-10-28 16:52:10

+4

如果你想刪除所有具有NA的行,那麼'na.omit(df)'。如果你只想在周列中省略帶有「NA」的行,那麼正如akrun所說的那樣。 – Gregor 2014-10-28 16:57:37

+2

不是你的問題的答案,但'?complete.cases'也是一個很好的知識函數 – 2014-10-28 17:01:35

回答

6

試試這個.table有點簡單:

data[ ! is.na(week) ] 
+0

在輸出上看起來好像這些不起作用,但分配得到了期望的結果! – user124123 2014-10-30 15:06:56