これは私のデータセットです (cc と呼ばれます)
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
私は最近、データが 1 日の 2 時間の間に特定の基準を満たした場合にデータをサブセット化する方法について質問しました (1 日の 2 時間の間のデータが基準を満たしている場合、ここで質問を参照してください)。
私のフォローアップの質問はこれです、
0 未満のカウントはエラーであるため、データ セットから除外する必要があります。600 から 2200 の間に >0 がある日の場合 (したがって、900 に 0 カウントがある場合、これはその日がサブセットに含まれていないことを意味しますが、600 から 2200 の間にカウントがあり、200 に 0 がある場合は 1 日全体です)私のコードは正常に動作しますが、出力に -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)
助けてくれてありがとう、ケイティ