这是我的数据集(称为 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 到 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)
提前感谢您的帮助,凯蒂