我是R的新手,我试图找到一个参与者(ID)在一个路口等待多长时间,如果他们的速度小于2 KPH。然后我想为这个时间框架创建一个新的变量,这将是“等待时间(s)”。我计划根据他们的组和经验比较参与者的等待时间。下面是我的变量和数据的简化数据集。
| ID|组|经验|结|速度(KPH)|时间(秒)|
| --|--|--|--|--|--|
| 1 | 1 | 1 |ROW 1-A| 5 |五十七点二|
| 1 | 1 | 1 |ROW 1-A| 4 |58.2|
| 1 | 1 | 1 |ROW 1-A| 3 |五十九点二|
| 1 | 1 | 1 |ROW 1-A| 2 |60.2|
| 1 | 1 | 1 |ROW 1-A| 1 |61.2|
| 1 | 1 | 1 |ROW 1-A| 0 |62.2|
| 1 | 1 | 1 |ROW 1-A| 0 |63.2|
| 1 | 1 | 1 |ROW 1-A| 1 |64.2|
| 1 | 1 | 1 |ROW 1-A| 2 |六十五点二|
| 1 | 1 | 1 |ROW 1-A| 3 |66.2|
| 1 | 1 | 1 |ROW 1-A| 4 |六十七点二|
| 1 | 1 | 1 |ROW 1-A| 5 |68.2|
| 2 | 2 | 2 |ROW 1-A| 3 |二十六点五|
| 2 | 2 | 2 |ROW 1-A| 2 |二十七点五|
| 2 | 2 | 2 |ROW 1-A| 1 |二十八点五|
| 2 | 2 | 2 |ROW 1-A| 0 |二十九点五|
| 2 | 2 | 2 |ROW 1-A| 0 |三十点五|
| 2 | 2 | 2 |ROW 1-A| 0 |三十一点五|
| 2 | 2 | 2 |ROW 1-A| 0 |三十二点五|
| 2 | 2 | 2 |ROW 1-A| 1 |三十三点五|
| 2 | 2 | 2 |ROW 1-A| 2 |三十四点五|
| 2 | 2 | 2 |ROW 1-A| 3 |三十五点五|
在真实的数据集中,有13个不同的交叉点名称(例如,ROW 1-A、ROW 2-A、GW 1-L、GW 2-R)。
每个参与者的时间变量是线性的,但是每个参与者在不同的时间开始。在这个例子中,对于参与者1,小于2 KPH的时间范围在61.2和64.2之间,等待时间为3秒,而对于参与者2,时间范围在28.5和33.5之间,等待时间为5秒。新变量需要将3秒与5秒。
有没有人可以在R/Rstudio中开发一些代码?
先谢了。
1条答案
按热度按时间gkn4icbw1#
这种方法使用
dplyr
包,并将给予您一个汇总表,以实现您想要的。我已经根据您的描述创建了一个“虚拟”数据集,以说明它在更有代表性的数据上的工作。我还修改了您的列名;避免列名中的标点符号是一个很好的做法,它使编码更容易:字符串