r - 按事件发生的时间序列提取
问题描述
我正在寻找一个代码来提取每个试验开始的列(称为时间)的时间间隔(500ms),以便我可以计算每个试验实际时间的前 500ms 的基线(以毫秒为单位)在两个连续的行之间该列会有所不同,因为数据集是下采样的,并且只报告了变化,所以我不能只计算一定数量的行来定义时间间隔。
我试过这个:
baseline <- labchart %>%
dplyr::filter(time[1:(length(labchart$time)+500)]) %>%
dplyr::group_by(Participant, trialonset)
但只收到如下错误消息:错误:参数 2 过滤条件不评估为逻辑向量而且我不确定,如果 (time[1:(length(labchart$Time)+500)]) 真的会给我第一个每次试验 500 毫秒?
解决方案
很难确切地知道你在这里问什么。我认为您要问的是如何将观察分组为 500 毫秒的周期,仅给出观察之间的时间间隔。
假设数据如下所示:
``` r
labchart <- data.frame(time = sample(50:300, 20, TRUE), data = rnorm(20))
labchart
#> time data
#> 1 277 -1.33120732
#> 2 224 -0.85356280
#> 3 80 -0.32012499
#> 4 255 0.32433366
#> 5 227 -0.49600772
#> 6 248 2.23246918
#> 7 138 -1.40170795
#> 8 115 -0.76525043
#> 9 159 0.14239351
#> 10 207 -1.53064873
#> 11 139 -0.82303066
#> 12 185 1.12473125
#> 13 239 -0.22491238
#> 14 117 -0.55809297
#> 15 147 0.83225435
#> 16 200 0.75178516
#> 17 170 -0.78484405
#> 18 208 1.21000589
#> 19 196 -0.74576650
#> 20 184 0.02459359
然后我们可以为总经过时间创建一个列,以及观察属于哪个 500 毫秒周期,如下所示:
library(dplyr)
labchart %>%
mutate(elapsed = lag(cumsum(time), 1, 0),
period = 500 * (elapsed %/% 500))
#> time data elapsed period
#> 1 277 -1.33120732 0 0
#> 2 224 -0.85356280 277 0
#> 3 80 -0.32012499 501 500
#> 4 255 0.32433366 581 500
#> 5 227 -0.49600772 836 500
#> 6 248 2.23246918 1063 1000
#> 7 138 -1.40170795 1311 1000
#> 8 115 -0.76525043 1449 1000
#> 9 159 0.14239351 1564 1500
#> 10 207 -1.53064873 1723 1500
#> 11 139 -0.82303066 1930 1500
#> 12 185 1.12473125 2069 2000
#> 13 239 -0.22491238 2254 2000
#> 14 117 -0.55809297 2493 2000
#> 15 147 0.83225435 2610 2500
#> 16 200 0.75178516 2757 2500
#> 17 170 -0.78484405 2957 2500
#> 18 208 1.21000589 3127 3000
#> 19 196 -0.74576650 3335 3000
#> 20 184 0.02459359 3531 3500
推荐阅读
- javascript - 在循环中检测与对象的碰撞
- laravel - 在 laravel 刀片模板中处理特殊字符'
- php - 接受 Codeigniter 中 application/x-www-form-urlencoded 中传递的请求数据
- verilog - 两个模拟相同设计的合成——如果在 SET clk 的过程中,有和没有第二个
- performance - 如何在 Jmeter 中计算负载配置文件并选择线程组
- node.js - MS Bot Framework nodejs sdk:在自适应卡片中显示长文本
- python - 从 SciPy 稀疏矩阵获取左、右、上、下非零邻居
- python - 升级到 pip 版本 18.1 后 pip3 命令失败
- c++11 - crtls 我的头类中的有效堆指针(块)
- c - 1. 在 N 秒内将捕获的数据包保存到一个 pcap 文件中 & 2. 像在 Wireshark 中一样打印程序的输出