2011-07-11 69 views
0

這是我的數據集(稱爲CC)問題的數據<0不是從數據集移除(儘管得體正確的代碼?)

Counter Date Hour Counts 
1296 02/05/2008 0  2 
1296 02/05/2008 100 0 
1296 02/05/2008 200 2 
1296 02/05/2008 300 0 
1296 02/05/2008 400 1 
1296 02/05/2008 500 6 
1296 02/05/2008 600 6 
1296 02/05/2008 700 45 
1296 02/05/2008 800 106 
1296 02/05/2008 900 43 
1296 02/05/2008 1000 33 
1296 02/05/2008 1100 -4 
1296 02/05/2008 1200 -4 
1296 02/05/2008 1300 56 
1296 02/05/2008 1400 45 
1296 02/05/2008 1500 49 
1296 02/05/2008 1600 88 
1296 02/05/2008 1700 124 
1296 02/05/2008 1800 91 
1296 02/05/2008 1900 42 
1296 02/05/2008 2000 33 
1296 02/05/2008 2100 13 
1296 02/05/2008 2200 9 
1296 02/05/2008 2300 8 

我最近問及如果如何子集我的數據問題數據在一天中的兩個小時之間達到了特定的標準(請參見subset data for a day if data between two hours of the day meets criteria?),這些標準工作正常。

我的跟進問題是這樣的,

小於0需要的任何數被取出的數據集,因爲這是錯誤的。對於在600和2200之間> 0的日子(所以如果在900處有0個計數,這意味着該日子不包括在該子集中,但是如果在600和2200之間有計數但在200爲0,那麼整天仍然計數)我的代碼工作正常,但有幾個小時的看似隨機的日子,我有-4個數據包括在輸出中(在例1100和1200)。 我看不出有什麼理由爲什麼這些減號應該仍然在數據集中,因爲其餘的負號被刪除,我也檢查過我的原始數據,格式沒有差別。任何幫助將非常感謝,因爲我在網上搜索時沒有發現任何其他幫助,我相信我最後一個問題中提供的代碼是正確的。

這裏是我一直在使用的代碼(除了隨機-4之外的所有作品都有幾天的發現)。

#code to make only 600 hrs to 2200 hrs over 0 # 
######################################### 

TDF <- subset(cc, Hour>=600 & Hour<=2200) 
# get dates where there are no hours with zero count 
dates2 <- subset(aggregate(counts~Date,TDF,prod),counts>=0)$Date 
DF3 <- subset(cc,Date %in% dates2) 

#i then make the counts daily (not shown in example)# 
########################################### 
daily=subset(DF3) 
daily$Date <- as.Date(daily$Date, "%d/%m/%Y") 
town=aggregate(counts ~ Date, daily, sum) 

預先感謝您的幫助, 凱蒂

回答

1

如果您正在使用的prod功能聚集,然後檢查的結果是> 0,你不應該感到驚訝時-4 * -4是GT 0.

+0

啊,我明白了!謝謝@DWin,我是一個R新手,只是無法弄清楚爲什麼這不起作用。在我創建排除<0的DF3之前添加一小段代碼是否最好?或者有沒有更好的方法?非常感謝你的幫助! –

+0

您可以輕鬆地將「&Count> 0」添加到子集參數,因此它看起來像:TDF < - subset(cc,Hour> = 600&Hour <= 2200&Count> 0) –

相關問題