带有if查询的子集数据帧

时间:2019-05-20 09:35:46

标签: r loops if-statement subset

我通常是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 ...

我希望这是有道理的。

谢谢!

0 个答案:

没有答案