【发布时间】:2013-12-29 22:50:58
【问题描述】:
我对编程很陌生,所以我提前为我缺乏 R 专业知识而道歉。我是一名对瞳孔测量感兴趣的博士生,我刚刚记录了参与者在两种条件下(简单和困难)执行听力任务的学生反应。每个试验的瞳孔响应兴趣期约为 20 秒,我希望能够在 R 上为每个参与者绘制此数据。眼动仪采样率为 1000Hz,每个参与者完成了 92 次试验。因此,我目前拥有的每个参与者的数据包括近 200 万行。我曾尝试使用 ggplot2 绘制此图,但不出所料,该图非常混乱。
我一直在尝试找到一种减少数据的方法,以便我可以将其绘制在 R 上。理想情况下,我想取每 1000 个样本(即 1 秒的记录)的平均瞳孔大小值在每个参与者的所有 92 次试验中。有了这些信息,我将创建一个新的数据框,用于绘制两种聆听条件(简单和困难)的 1-20 秒的平均斜率。
这是我的数据框的当前结构;
> str(ppt53data)
'data.frame': 1915391 obs. of 6 variables:
$ RECORDING_SESSION_LABEL: Factor w/ 1 level "ppt53": 1 1 1 1 1 1 1 1 1 1 ...
$ listening_condition : Factor w/ 2 levels "Easy","Hard": 2 2 2 2 2 2 2 2 2 2 ...
$ RIGHT_PUPIL_SIZE : Factor w/ 3690 levels ".","0.00","1000.00",..: 3266 3264 3263 3262 3262 3260 3257 3254 3252 3252 ...
$ TIMESTAMP : num 262587 262588 262589 262590 262591 ...
$ TRIAL_START_TIME : int 262587 262587 262587 262587 262587 262587 262587 262587 262587 262587 ...
$ TrialTime : num 0 1 2 3 4 5 6 7 8 9 ...
- attr(*, "na.action")=Class 'omit' Named int [1:278344] 873 874 875 876 877 878 879 880 881 882 ...
.. ..- attr(*, "names")= chr [1:278344] "873" "874" "875" "876" ...
“TrialTime”变量指定每次试验的样本(即毫秒)。谁能告诉我下一步我应该采取哪一步?我认为将我的数据安排到单独的数据框中是有意义的,这将允许我计算我想要的平均值(跨试验和每 1000 个样本)。但是,我不确定最有效/最好的方法是什么。
很抱歉,我不能更具体。任何粗略的指导将不胜感激。
【问题讨论】:
-
恕我直言,如果您将数据发布到我们可以获取的地方(Dropbox?)会更好。或者至少是一个有代表性的子集。
-
仅供参考:RIGHT_PUPIL_SIZE 中包含非数字数据 - 您可以通过在导入中将它们设置为
na.strings来摆脱这种情况。read.csv("myfile.csv",na.strings=".") -
Brandon,感谢您指出这一点 - 我刚刚更改了该变量,使其只是数字数据。 JLHoward,感谢您的评论 - 如果我有任何疑问,我会尝试发布我的数据。