0

これは私のデータセットです (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)

助けてくれてありがとう、ケイティ

4

1 に答える 1

1

関数で集計しprod、結果が >0 であることを確認する場合、-4 * -4 が GT 0 であっても驚かないでください。

于 2011-07-11T15:11:48.730 に答える