Это мой набор данных (называется 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
Я недавно задал вопрос о том, как установить подмножество моих данных, если данные соответствуют определенным критериям между двумя часами дня (см. Вопрос здесь подмножество данных за день, если данные между двумя часами дня соответствуют критериям? ), который работал нормально.
Мой следующий вопрос:
Любые значения меньше 0 должны быть удалены из набора данных, так как это ошибка. Для дней, когда> 600 находится между 600 и 2200 (так что если 0 равно 900, это будет означать, что день не включен в подмножество, но если есть подсчеты между 600 и 2200, но 0 при 200, то весь день) все еще считается) мой код работает нормально, но есть пара часов, казалось бы, случайных дней, когда в вывод включаются данные -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)
Заранее благодарю за помощь,
Кэти