I am a newbie to R and programming in general, so I will do my best to explain the issue below:
I am working on a research project where I am collecting a wide range of data from a participants dwelling on indoor environmental quality and I am also collecting data on if any door or window is opened or closed.
Every time a door or window is opened or closed the logger records a 1 in the corresponding datetime row, all other entries are NA.
I need to create a new variable in the existing data frame (eltek) which provides the following logic:
Between time (date column) 1 T1 (1st 1 in main_door_event) and time 2 T2 (2nd 1 in main_door_event), if there is a 1 recorded between T1 and T2 for any of the variables (bathroom_door_event, bedroom_door_event, bedroom_window_event, living_door_event, living_window_event and balcony_door_event) then place a 1 in a new column in eltek called internal_activity between T1 and T2.
Between time (date column) 2 T2 (2nd 1 in main_door_event) and time 3 T3 (3rd 1 in main_door_event), if there is a 1 recorded between T2 and T3 for any of the variables (bathroom_door_event, bedroom_door_event, bedroom_window_event, living_door_event, living_window_event and balcony_door_event) then place a 1 in a new column in eltek called internal_activity between T2 and T3.
Following the above, I will create a sub-set of the data based on all rows that have a 1 in internal_activity for further analysis.
Excerpt of eltek df:
str(eltek)
'data.frame': 4169 obs. of 42 variables:
$ date : POSIXct, format: "2019-05-02 00:00:00" "2019-05-02 00:05:00" "2019-05-02 00:10:00" "2019-05-02 00:15:00" ...
$ main_door_event : num 1 NA NA NA 1 NA NA 1 NA NA ...
$ bathroom_door_event : num NA 1 NA NA NA NA NA NA NA NA ...
$ bedroom_door_event : num NA NA NA NA NA NA NA NA NA NA ...
$ bedroom_window_event: num NA NA 1 NA NA NA NA NA NA NA ...
$ living_door_event : num NA NA NA NA NA NA NA NA NA NA ...
$ living_window_event : num NA NA NA NA NA NA NA NA NA NA ...
$ balcony_door_event : num NA NA NA NA NA NA NA NA NA NA ...
Structure of relevant parts of the dataframe (eltek) provided above. All variables are recorded as numerical (is it better that these are boolean true/false?). The datetime is POSIXct for every 5 minutes.
I would expect the output to be:
str(eltek)
'data.frame': 4169 obs. of 42 variables:
$ date : POSIXct, format: "2019-05-02 00:00:00" "2019-05-02 00:05:00" "2019-05-02 00:10:00" "2019-05-02 00:15:00" ...
$ main_door_event : num 1 NA NA NA 1 NA NA 1 NA 1 ...
$ bathroom_door_event : num NA 1 NA NA NA NA NA NA NA NA ...
$ bedroom_door_event : num NA NA NA NA NA NA NA NA NA NA ...
$ bedroom_window_event: num NA NA 1 NA NA NA NA NA NA NA ...
$ living_door_event : num NA NA NA NA NA NA NA NA NA NA ...
$ living_window_event : num NA NA NA NA NA NA NA NA NA NA ...
$ balcony_door_event : num NA NA NA NA NA NA NA NA 1 NA ...
$ internal_activity : num 1 1 1 1 NA NA NA 1 1 NA ...
I hope this makes sense.
Thank you!
Aucun commentaire:
Enregistrer un commentaire