Я надеюсь, что все хорошо. Недавно я разработал код (с помощью замечательного сообщества переполнения стека), чтобы рассчитать время до первой фиксации, продолжительность первой фиксации и общую продолжительность посещения интересующих областей. Теперь я хочу обновить его, чтобы он мог корректироваться в зависимости от предъявляемых стимулов. В частности, координаты x и y очень незначительно различаются между каждым стимулом. У меня есть пример электронной таблицы координат стимулов. Было бы здорово, если бы я мог прочитать их. Сопоставить их со стимулами в данных Final_Label и иметь возможность рассчитать и обобщить эти показатели по всем испытаниям. Поэтому мне нужно что-то в коде, которое по существу говорит - если это стимулы (например, A1 использует эти координаты и т. д.).
Спасибо за вашу помощь и, пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию в это время.
Берегите себя и будьте здоровы,
Кэролайн
Face_AOI <- Final_Labels %>%
mutate(AOI_face = (mean_x >= .100 & mean_x <= .500 & mean_y >= .100 & mean_y <= .800), #These numbers are FAKE ###) %>%
filter(AOI_face) %>%
group_by(SubjectID, Trial) %>%
summarize(Face_totalfixationduration = sum(Duration), Face_firstfixationduration = first(Duration), Face_timetofirstfixation = first(Start))
Mouth_AOI <- Final_Labels %>%
mutate(AOI_mouth = (mean_x >= .200 & mean_x <= .300 & mean_y >= .500 & mean_y <= .600)) %>%
filter(AOI_mouth) %>%
group_by(SubjectID, Trial) %>%
summarize(Mouth_totalfixationduration = sum(Duration), Mouth_firstfixationduration = first(Duration), Mouth_timetofirstfixation = first(Start))
Mouth_AOI$SubjectID <- NULL
Eyes_AOI <- Final_Labels %>%
mutate(
AOI_eyes = (mean_x >= .200 & mean_x <= .300 & mean_y >= .500 & mean_y <= .600)) %>%
filter(AOI_eyes) %>%
group_by(SubjectID, Trial) %>%
summarize(Eyes_totalfixationduration = sum(Duration), Eyes_firstfixationduration = first(Duration), Eyes_timetofirstfixation = first(Start))
Пример списка стимулов с разными координатами для интеграции в приведенный выше код.
Df2 <- data.frame(Stimuli = c("A1", "A1", "A1", "A2", "A2", "A2"),
AOI = C("Face", "Eyes", "Mouth", "Face", "Eyes", "Mouth"),
X1 = c(0, 300, 301, 0, 305, 306),
X2 = c(1022, 600, 600, 0, 604, 604),
Y1 = c(0, 30, 31, 0, 30, 38),
Y2 = c(0, 300, 301, 6, 305, 306))
Вот пример кадра данных Final_Labels
Final_Labels <- data.frame(Stimuli = c("A1.jpg", "A2.jpg", "A3.jpg", "A4.jpg", "A5.jpg", "H1.jpg"), ##note we will need .jpg to be removed to match the files
Duration = c(300, NA, 300, 60, NA, NA),
Start = c(100, NA, 1, 100, NA, NA),
End = c(160, NA, 301, 160, NA, NA),
mean_x = c(.3, NA, .50, .40, NA, NA),
mean_y = c(.5, NA, .4, .5, NA, NA))
Final_Label
, поэтому я не очень понимаю, с чего вы начинаете. Сопоставление вашегоDf2
сFinal_Label
, вероятно, означает соединение какого-либо типа - вы можете увидеть часто задаваемые вопросы Как соединить (объединить) данные в R?. - person Gregor Thomas   schedule 02.11.2020Final_Label
, а также немного более точное описание того, как вы хотите их объединить, я могу попробовать. (Желаемый выходной сигнал, соответствующий вашему образцу ввода, будет полезен) - person Gregor Thomas   schedule 02.11.2020X1, X2, Y1, Y2
, которые вы предоставляете, относятся к классуcharacter
, а не числовым (из-за кавычек вокруг них). Это преднамеренно? Если вы хотите использовать их как числа, вероятно, первым шагом будет преобразование их всех в числовые. - person Gregor Thomas   schedule 02.11.2020