我正在尝试确定10种不同工具对事件做出响应的能力。其中一种工具的数据为here。同样在上面的链接中(一个名为“ peak times.xlsx”的Excel文件)列出了整个月内发生的事件。从上面的链接可以看出,每天进行测试的我都有30个不同的.csv文件的数据。我想要做的是获取已知的峰并将数据作为子集,以便最终确定从事件开始到PM2.5峰值所需的时间,以便比较仪器的响应时间。虽然我仍在尝试确定执行此操作的最佳方法,但我首先遇到有关如何有效地对已知事件进行子集化的问题。问题是我试图将其子集化的事件是在不同的时间间隔上进行的,并且仪器上的时钟没有按照列出的时间间隔准确记录(例如,请参见下文)
AirQualityEgg_HOMEChemKitchen_20180605_R0.csv.csv$Timestamp[c(169:180)]
[1] 06/05/2018 02:48:03 06/05/2018 02:49:02 06/05/2018 02:50:02
06/05/2018 02:51:02
[5] 06/05/2018 02:52:02 06/05/2018 02:53:02 06/05/2018 02:54:02
06/05/2018 02:55:02
[9] 06/05/2018 02:56:02 06/05/2018 02:57:02 06/05/2018 02:58:02
06/05/2018 02:59:03
由于数据中的时间间隔不均匀且事件不均匀,所以我可以确定如何按事件对数据进行子集划分的唯一方法是手动进行操作。注意:我需要按原样记录时间,因为目标是确定事件发生时仪器的性能如何,仪器上的时钟是评估的一部分。
以下是到目前为止我对子集所做的工作。由于事件的数量以及我拥有的工具的数量,最终导致超过600行代码。我在不同时标上记录的其他仪器(一些时间间隔为1秒,其他时间间隔为80秒,等等。)是否有一种方法可以通过事件有效地对数据进行子集,以便可以使用子集的数据来评估峰值响应时间?
##import libraries
library(readxl)
library(readr)
library(data.table)
#find working directory
setwd()
getwd()
#import csvs
temp = list.files(pattern="*.csv")
for (i in 1:length(temp)) assign(temp[i], read.csv(temp[i]))
#AQE Kitchen data
#stove
AQE_K_Stove_A<-
AirQualityEgg_HOMEChemKitchen_20180606_R0.csv.csv[c(511:527),]
AQE_K_Stove_B<-
AirQualityEgg_HOMEChemKitchen_20180606_R0.csv.csv[c(720:759),]
AQE_K_Stove_C<-
AirQualityEgg_HOMEChemKitchen_20180606_R0.csv.csv[c(934:961),]
.
.
.
#window
AQE_K_Window_A<-
AirQualityEgg_HOMEChemKitchen_20180604_R0.csv.csv[c(485:501),]
AQE_K_Window_B<-
AirQualityEgg_HOMEChemKitchen_20180604_R0.csv.csv[c(605:636),]
AQE_K_Window_C<-
AirQualityEgg_HOMEChemKitchen_20180604_R0.csv.csv[c(725:755),]
.
.
.
#Lasagna
AQE_K_Las_A<-
AirQualityEgg_HOMEChemKitchen_20180608_R0.csv.csv[c(932:1002),]
#Toast
AQE_K_Toast_A<-
AirQualityEgg_HOMEChemKitchen_20180608_R0.csv.csv[c(525:531),]
AQE_K_Toast_B<-
AirQualityEgg_HOMEChemKitchen_20180608_R0.csv.csv[c(901:905),]
AQE_K_Toast_C<-
AirQualityEgg_HOMEChemKitchen_20180618_R0.csv.csv[c(570:577),]
.
.
.
最终,我想为每种乐器的每个事件生成一个带有增量t的table,然后按事件类型对其平均。但是首先,我只想看看是否有一种更有效的方法来做我已经做过的事情,以便为即将进行的这些事件的分析做准备。
编辑:我通过记录事件发生的时间(直到分钟)来对事件进行硬编码,并在data.table中指向与列出的时间匹配的位置。我将结束时间延长了两点,以确保捕获高峰。可以在上面的文件“ peak
中找到数据Time of stove on to stove off:
A- 6/6 8:35 - 8:51 Stir fry (cast iron pan)
B- 6/6 12:05 - 12:43 Stir fry (hot plate, cast iron pan)
C- 6/6 3:39 - 4:05 Stir fry (cast iron pan)
D- 6/6 9:05 - 9:21 Stir fry (cast iron pan)
E- 6/8 8:35 - 8:50 Breakfast (cast iron pan)
F- 6/8 11:35 - 11:56 Stir fry (cast iron pan)
G- 6/12 8:35 - 9:25 Stir fry (hot plate, wok)
H- 6/12 12:35 - 1:21 Stir fry (cast iron pan)
I- 6/12 4:35 - 5:16 Stir fry (wok)
J- 6/12 8:35 - 9:14 Stir fry (wok)
.
.
.
Time of windows open:
A- 6/4 8:05- 8:20 am
B- 6/4 10:05- 10:35 am
C- 6/4 12:05 - 12:35pm
D- 6/4 2:05- 2:35pm
E- 6/4 4:05- 4:35 pm
.
.
.
Lasagna
A- 6/08 3:37-4:46 pm
Toast
A-6/08 8:50-8:54 am
B- 6/08 3:06 - 3:08 pm
C- 6/18 9:35 -9:40 am
.
.
.
总共有23个烹饪事件,29个窗口事件,1个烤宽面条和11个吐司事件。