【问题标题】:Calculating response latency of the eye计算眼睛的反应延迟
【发布时间】:2019-02-27 22:05:51
【问题描述】:

我想计算眼睛的反应延迟。我想通过测量目标在屏幕上出现与快速眼球运动响应之间的时间差来做到这一点。

下面是单个试用示例的图片。紫色线是目标出现在屏幕上的时间段。最上面一行是眼睛Y坐标的位置数据,下面一行是速度。 正如您在此处看到的,以高速向下的快速眼球运动是一种扫视。

为了让您了解我的数据的外观,我制作了一个虚拟 data.frame。块代表您也可以在图中看到的块。暂时忽略 trial.block。 saccade 是一列,告诉您数据是 S(saccade)还是 F(fixation)。

知道如何计算每个单独试验的目标开始时的 Iview 和第一次扫视开始之间的时间吗?

非常感谢

library(dplyr)
N = 500

G.df <- data.frame(Iview = seq(N*2),
               cue.condition = rep(c("spatial", "non-spatial"), each = N),
               block = rep(c("fixation.1", "fixation.2", "target.1", "target.2"), each = N/2),
               trial.block = rep(1:4, each = N/2),
               trial.number = rep(1:50, each = 10),
               saccade = sample(c("S","F"), size = 100, replace = T))

【问题讨论】:

    标签: r response-time


    【解决方案1】:

    我不确定我是否正确理解了您的请求。每次试验的block == 'target.1' 首次出现与block == 'target.1' &amp; saccade == 'S' 首次出现之间的时间可以这样计算:

    G.df %>%
      group_by(trial.number) %>%
      summarise(time_between = Iview[block == "target.1" & saccade == "S"][1] - Iview[block == "target.1"][1])
    
    # A tibble: 50 x 2
       trial.number time_between
              <int>        <int>
     1            1            2
     2            2            1
     3            3            0
     4            4            0
     5            5            1
     6            6            1
     7            7            1
     8            8            1
     9            9            0
    10           10            0
    # ... with 40 more rows
    

    【讨论】:

    • 该死,我知道有比我更简单的方法。我还不知道 Iview[block == "target.1" & saccade == s[1] 是可能的。你和 dplyr 都很聪明。@LAP 再次感谢队友!
    • 只是一个快速的其他问题@LAP。只有在 trial.number 相同的情况下,提取 2 个 data.frames 值的最简单方法是什么?我有一个反应时间为 144 的 df 和一个 111 的 df,我只想提取常见的 trial.number 值。我试过 if(button_rt$trial.number %in% eye_rt$trial_number == T { calculate = button_rt$reaction.time - eye_rt$reaction-time } 但它给了我一些问题
    • if 不适用于向量。此外,对于if 和逻辑,您不需要指定== Tx %in% y 的结果已经返回 TRUEFALSE。与常见的 trial.numbers 的重叠是否在两个 data.frames 中的大小完全相同?
    • 两个df中的trial.numbers完全相同。但是 button_rt 和 eye_rt 的 nrow 不是,这意味着一些 trial.numbers 不存在于两者中
    • 我将两个 data.frames 子集化(subset(button_rt, button_rt$trial.number %in% eye_rt$trial_number) 反之亦然),然后按 trial.number 对两个 data.frames 进行排序(button_rt[order(button_rt$trial.number),],与 eye_rt 相同)并减去带有button_rt$reaction.time - eye_rt$reaction.time的向量。
    猜你喜欢
    • 2011-08-22
    • 1970-01-01
    • 2019-06-07
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 2013-12-15
    • 1970-01-01
    相关资源
    最近更新 更多