Имам данни за пупилометрия за 24 участници, всеки от които има хиляди редове измервания на размера на зеницата (както съм нарекъл PupilAvg
). Колоната за време се нарича TrialTimestamp
и се измерва в ms. Имам също trial.number
и trial.type
като колони. Главата на моя кадър с данни (mydata1
) може да се види по-долу.
RecordingName trial.number trial.type TrialTimestamp PupilAvg
1 Mix_20_S04 1 same 0 3.910
2 Mix_20_S04 1 same 17 3.815
3 Mix_20_S04 1 same 133 3.545
4 Mix_20_S04 1 same 150 3.460
5 Mix_20_S04 1 same 167 3.410
6 Mix_20_S04 1 same 183 3.345
Въпросът ми е: как мога да получа средна базова линия за изпитване на участник, където базовата линия е равна на средния размер на зеницата между времето 5400ms и 5500ms? Бих искал да мога да извадя тези базови измервания от измерванията на зеницата в моя прозорец за анализ (за да ги коригирам за индивидуалните различия).
Измислих код, за да направя това за едно изпитание (изпитание 3) за един участник (04).
S04data<-filter(mydata1, RecordingName == "Mix_20_S04")
S04data1<-filter(S04data, trial.number == "3")
baselineS04 <- with(S04data1, mean(PupilAvg[TrialTimestamp >= 5400 & TrialTimestamp <= 5500]))
Това връща стойност 3,1225. Така че базовата стойност за участник 4, опит 3 е 3,1225.
Ще съм много благодарен, ако някой може да ми помогне да напиша код, за да получа базови мерки за всеки участник при всяко изпитване (без да се налага да пиша своя индивидуален код за всеки участник за всяко изпитване!!).