Я новичок в R и программировании в целом, поэтому я приложу все усилия, чтобы объяснить проблему ниже:
Я работаю над исследовательским проектом, где собираю широкий спектр данных изучастники рассказывают о качестве окружающей среды в помещении, и я также собираю данные о том, открыта или закрыта какая-либо дверь или окно.
Каждый раз, когда дверь или окно открывается или закрывается, регистратор записывает 1 в соответствующую строку даты и времени,все остальные записи - NA.
Мне нужно создать новую переменную в существующем фрейме данных (eltek), которая обеспечивает следующую логику:
Между временем (столбец даты) 1 T1 (1-е 1в main_door_event) и времени 2 T2 (2-е в main_door_event), если между T1 и T2 записана 1 для любой из переменных (bathroom_door_event, Bedroom_door_event, Bedroom_window_event, living_door_event, living_window_event иalk_door_event a), затем поместите столбец 1 в 1) в место 1)в eltek называется внутренняя_активность между T1 и T2.
Междувремя (столбец даты) 2 T2 (2-е 1 в main_door_event) и время 3 T3 (3-е 1 в main_door_event), если есть запись 1 между T2 и T3 для любой из переменных (bathroom_door_event, Bedroom_door_event, Bedroom_window_event, living_door_event, living_window_event и living_window_event иalk_door_event) затем поместите 1 в новый столбец в eltek с именем internal_activity между T2 и T3.
Следуя вышеизложенному, я создам подмножество данных на основе всех строк, которые имеют 1 в internal_activity длядальнейший анализ.
Выдержка из 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 ...
Структура соответствующих частей кадра данных (eltek), представленных выше.Все переменные записаны как числовые (лучше ли, чтобы они были булевыми true / false?).Дата и время POSIXct для каждых 5 минут.
Я ожидаю, что результат будет:
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 ...
Надеюсь, это имеет смысл.
Спасибо!