我通常是R和编程的新手,因此,我将尽力解释以下问题:
我正在从事一个研究项目,我在其中收集了与室内环境质量有关的参与者的大量数据,并且还收集了有关是否打开或关闭门或窗的数据。
每次打开或关闭门窗时,记录器都会在相应的日期时间行中记录1,其他所有条目均为NA。
我需要在现有数据帧(eltek)中创建一个新变量,该变量提供以下逻辑:
在时间(日期列)1 T1(main_door_event中的第1个)和时间2 T2(main_door_event中的第2个)之间,如果在T1和T2之间记录了任何变量(bathroom_door_event,bedroom_door_event,bedroom_window_event, living_door_event,living_window_event和balcony_door_event),然后在eltek的T1和T2之间的称为internal_activity的新列中放置一个数字。
在时间(日期列)2 T2(main_door_event中的第2个1)和时间3 T3(main_door_event中的第3个1)之间,如果在T2和T3之间记录了任何变量(bathroom_door_event,bedroom_door_event,bedroom_window_event, living_door_event,living_window_event和balcony_door_event),然后在eltek的新列中将1放置在T2和T3之间的internal_activity。
接着,我将基于内部活动中所有值为1的所有行创建一个数据子集,以供进一步分析。
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吗?)。日期时间为每5分钟POSIXct。
我希望输出为:
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 ...
我希望这是有道理的。
谢谢!