trial | pos1 | pos2 | pos3 | pos4 | pos5 | pos6 | pos7 | pos8 | pos9 | pos10 | pos11 | pos12 | pos13 | pos14 | pos15 | pos16 | pos17 | pos18 | pos19 | pos20 | pos21 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | [-667,-268] | [-404,-219] | [-217,-203] | [-39,-224] | [229,-179] | [419,-209] | [642,-236] | [-655,-54] | [-382,9] | [-254,17] | [-28,-49] | [252,21] | [468,-27] | [661,-36] | [-607,242] | [-426,244] | [-176,171] | [-44,264] | [255,209] | [476,240] | [664,189] |
2 | [-672,-185] | [-476,-263] | [-226,-192] | [-44,-266] | [245,-182] | [413,-235] | [670,-264] | [-617,-48] | [-440,15] | [-165,-41] | [23,27] | [177,-7] | [409,51] | [599,-17] | [-689,251] | [-442,199] | [-194,170] | [-30,235] | [189,168] | [437,238] | [645,245] |
3 | [-691,-228] | [-430,-268] | [-241,-223] | [43,-209] | [200,-168] | [466,-223] | [626,-166] | [-605,45] | [-414,-42] | [-196,-28] | [23,-50] | [225,-47] | [390,-23] | [674,-10] | [-601,228] | [-392,183] | [-243,265] | [-15,262] | [183,165] | [456,256] | [633,216] |
4 | [-651,-182] | [-393,-208] | [-208,-186] | [42,-201] | [178,-271] | [471,-176] | [598,-257] | [-626,-21] | [-397,-23] | [-182,47] | [-14,13] | [193,5] | [458,-33] | [642,-15] | [-664,253] | [-479,227] | [-255,213] | [16,249] | [187,233] | [429,228] | [614,240] |
5 | [-609,-274] | [-451,-258] | [-243,-272] | [34,-170] | [197,-165] | [417,-189] | [622,-204] | [-686,9] | [-452,19] | [-238,45] | [11,-45] | [261,23] | [391,23] | [685,1] | [-602,220] | [-412,270] | [-201,179] | [-30,243] | [241,216] | [462,272] | [629,269] |
6 | [-690,-215] | [-432,-187] | [-194,-240] | [-3,-273] | [260,-269] | [451,-208] | [678,-172] | [-622,-3] | [-399,45] | [-222,-32] | [-36,46] | [224,12] | [423,11] | [646,-45] | [-663,238] | [-379,257] | [-174,251] | [26,169] | [186,252] | [464,196] | [599,253] |
7 | [-605,-265] | [-404,-202] | [-245,-197] | [-27,-216] | [264,-245] | [409,-202] | [599,-231] | [-671,3] | [-441,-32] | [-263,-21] | [17,-46] | [178,8] | [401,16] | [624,-12] | [-677,206] | [-428,196] | [-193,203] | [-17,171] | [245,202] | [466,181] | [631,248] |
8 | [-644,-243] | [-393,-175] | [-259,-202] | [18,-167] | [260,-202] | [425,-274] | [669,-197] | [-615,31] | [-427,55] | [-229,48] | [15,43] | [163,10] | [417,14] | [622,54] | [-604,223] | [-394,211] | [-252,173] | [35,187] | [216,189] | [452,179] | [640,250] |
9 | [-678,-204] | [-379,-183] | [-201,-171] | [40,-255] | [198,-228] | [429,-203] | [614,-178] | [-649,49] | [-441,-13] | [-209,0] | [31,19] | [173,-52] | [432,15] | [600,0] | [-652,214] | [-398,175] | [-202,261] | [24,239] | [208,224] | [447,266] | [664,249] |
10 | [-654,-202] | [-451,-209] | [-232,-177] | [-8,-178] | [176,-218] | [393,-236] | [679,-184] | [-665,-43] | [-443,-48] | [-228,-54] | [-43,-50] | [251,31] | [449,-39] | [674,-24] | [-689,242] | [-476,235] | [-261,241] | [5,236] | [223,266] | [451,239] | [616,270] |
11 | [-635,-259] | [-429,-205] | [-245,-221] | [-27,-168] | [195,-257] | [434,-172] | [621,-261] | [-688,-10] | [-430,-42] | [-214,34] | [24,-29] | [173,25] | [402,-23] | [644,-6] | [-672,182] | [-476,184] | [-243,255] | [34,206] | [252,238] | [409,217] | [676,227] |
12 | [-674,-203] | [-426,-245] | [-195,-193] | [52,-221] | [263,-258] | [400,-168] | [606,-232] | [-692,36] | [-392,-35] | [-267,-27] | [37,-20] | [220,28] | [458,-33] | [621,-14] | [-672,233] | [-456,230] | [-183,246] | [-46,240] | [222,226] | [403,228] | [633,241] |
13 | [-614,-169] | [-477,-225] | [-174,-174] | [-22,-258] | [255,-266] | [394,-203] | [656,-177] | [-661,37] | [-426,30] | [-248,27] | [-18,16] | [251,53] | [410,41] | [658,-54] | [-694,207] | [-409,169] | [-171,249] | [-48,259] | [187,264] | [385,191] | [647,187] |
14 | [-609,-273] | [-398,-261] | [-223,-170] | [-35,-173] | [204,-218] | [408,-269] | [598,-242] | [-627,-25] | [-422,26] | [-163,-38] | [-5,43] | [179,48] | [422,-10] | [684,-47] | [-635,243] | [-430,181] | [-164,171] | [0,258] | [225,172] | [448,229] | [676,173] |
15 | [-616,-177] | [-390,-251] | [-251,-274] | [44,-265] | [164,-208] | [426,-236] | [594,-256] | [-685,-45] | [-459,-38] | [-219,-2] | [14,-42] | [244,11] | [379,36] | [629,11] | [-635,274] | [-407,256] | [-255,257] | [-11,203] | [223,187] | [447,243] | [630,251] |
16 | [-634,-188] | [-403,-236] | [-169,-243] | [-17,-239] | [253,-216] | [468,-247] | [627,-206] | [-611,-31] | [-416,-14] | [-173,-30] | [-5,32] | [228,-12] | [400,40] | [659,-48] | [-689,180] | [-422,203] | [-229,260] | [41,267] | [193,229] | [471,258] | [665,222] |
17 | [-662,-187] | [-385,-220] | [-246,-233] | [-9,-209] | [203,-220] | [469,-254] | [685,-259] | [-655,28] | [-444,43] | [-231,-42] | [-20,45] | [245,8] | [389,-32] | [690,38] | [-677,172] | [-402,184] | [-192,238] | [41,250] | [197,214] | [407,181] | [681,173] |
18 | [-648,-241] | [-436,-175] | [-201,-191] | [29,-213] | [258,-219] | [458,-260] | [694,-224] | [-656,34] | [-443,43] | [-226,-21] | [43,-2] | [188,-30] | [390,-43] | [612,-20] | [-596,211] | [-463,189] | [-175,192] | [31,193] | [256,241] | [418,208] | [600,218] |
19 | [-659,-191] | [-409,-251] | [-187,-247] | [10,-256] | [244,-183] | [481,-263] | [603,-199] | [-696,-21] | [-464,-1] | [-191,-51] | [-40,0] | [193,21] | [407,31] | [614,36] | [-604,208] | [-409,236] | [-252,202] | [16,188] | [198,244] | [427,239] | [625,251] |
20 | [-618,-182] | [-455,-180] | [-219,-185] | [-41,-168] | [215,-228] | [405,-261] | [658,-211] | [-648,-2] | [-407,52] | [-221,-46] | [-2,30] | [168,-14] | [457,44] | [607,-15] | [-679,189] | [-424,258] | [-265,216] | [44,201] | [195,191] | [425,237] | [667,247] |
21 | [-598,-241] | [-438,-242] | [-258,-213] | [-11,-189] | [186,-200] | [469,-197] | [695,-227] | [-680,-21] | [-402,-27] | [-184,15] | [6,37] | [171,-11] | [430,54] | [603,-22] | [-690,237] | [-478,211] | [-239,165] | [-3,174] | [232,205] | [451,205] | [618,203] |
22 | [-625,-168] | [-472,-189] | [-262,-270] | [43,-244] | [238,-173] | [460,-215] | [683,-196] | [-642,34] | [-387,-40] | [-241,-54] | [41,-22] | [230,22] | [465,-26] | [620,-28] | [-631,249] | [-443,251] | [-262,222] | [-17,194] | [217,253] | [471,203] | [640,234] |
23 | [-688,-208] | [-458,-209] | [-230,-230] | [47,-217] | [267,-166] | [402,-228] | [596,-266] | [-619,-28] | [-431,20] | [-246,11] | [-29,-55] | [201,-12] | [424,-7] | [652,-23] | [-635,200] | [-446,177] | [-222,243] | [1,241] | [209,210] | [456,258] | [608,182] |
24 | [-679,-168] | [-411,-226] | [-237,-173] | [-16,-250] | [265,-240] | [425,-240] | [652,-220] | [-636,1] | [-403,-53] | [-259,33] | [-42,-45] | [205,-5] | [407,-26] | [653,-40] | [-624,275] | [-428,175] | [-207,266] | [-19,260] | [219,259] | [415,265] | [676,230] |
25 | [-635,-254] | [-437,-259] | [-190,-271] | [17,-197] | [180,-180] | [379,-214] | [664,-241] | [-623,35] | [-462,-34] | [-211,7] | [18,33] | [249,-41] | [449,-21] | [651,-26] | [-624,198] | [-446,233] | [-187,233] | [2,235] | [168,166] | [417,244] | [598,268] |
26 | [-670,-253] | [-451,-189] | [-219,-188] | [46,-255] | [254,-194] | [461,-257] | [657,-267] | [-629,27] | [-408,6] | [-221,54] | [-33,27] | [164,13] | [439,-11] | [655,24] | [-636,267] | [-473,268] | [-209,196] | [-4,212] | [169,179] | [438,190] | [630,184] |
27 | [-662,-241] | [-460,-221] | [-234,-245] | [35,-252] | [166,-259] | [431,-205] | [621,-219] | [-640,21] | [-396,-21] | [-193,2] | [44,-2] | [218,-43] | [428,22] | [642,12] | [-650,189] | [-480,193] | [-235,217] | [41,180] | [196,205] | [443,173] | [656,201] |
28 | [-658,-222] | [-425,-190] | [-248,-166] | [25,-168] | [187,-190] | [448,-252] | [632,-262] | [-637,-26] | [-384,53] | [-173,6] | [-31,55] | [242,-16] | [463,53] | [685,39] | [-642,203] | [-450,265] | [-204,236] | [0,275] | [193,178] | [423,212] | [664,229] |
29 | [-674,-253] | [-423,-250] | [-238,-230] | [-30,-253] | [263,-181] | [473,-213] | [609,-255] | [-608,25] | [-424,-17] | [-211,15] | [-10,-11] | [185,-9] | [467,20] | [692,40] | [-653,210] | [-475,247] | [-189,224] | [-17,247] | [229,253] | [416,181] | [625,173] |
30 | [-660,-167] | [-393,-166] | [-240,-253] | [37,-245] | [243,-238] | [464,-243] | [645,-196] | [-596,4] | [-473,16] | [-166,-51] | [-12,7] | [170,18] | [378,-15] | [672,36] | [-632,201] | [-379,210] | [-190,247] | [-41,261] | [252,180] | [449,170] | [633,216] |
HW4 // Предобработка данных
Для выполнения заданий этой домашки используйте tidyverse
.
Основные задания
Сегодня мы работаем с данными одного экспериментального исследования.
Эксперимент был направлен на изучение гибридного зрительного поиска. Испытуемому было необходимо искать объекты из определенной категории. В качестве независимых переменных варьировались так называемые visual setsize и memory setsize, то есть количество стимулов, предъявляемых на экране монитора, и количество категорий, которые нужно было запомнить. Кроме того, использовались категории двух уровней — базовые (яблоки, кружки) и суперординатные (фрукты, посуда).
Данные располагаются в двух файлах. В файле base.xlsx
содержаться данные из группы испутыемых, которым предлагались базовые категории, в файле super.xlsx
— данные из группы испутыемых, которым предлагались суперординатные категории.
На листе cor_answ
в каждом файле есть данные по точности для каждого сочетания условий. Сочетания условий кодируются следующим образом: например, 1_stim_8
обозначает, что memory setsize был равен 1, а visual setsize был равен 8. То есть первое число задаёт memory setsize, второе — visual setsize. На этом же листе с правого края есть соцдем респондентов — пол и возраст. На листе Time
располагаются аналогичным образом организованные данные по времени реакции (от момента начала предъявления стимулов до нажатия на клавишу).
Хотя данные, с которыми мы работаем, были частично предобработаны коллегой — это не сырые аутпуты PsychoPy — нам все равно придется с ними поработать, чтобы привести их к удобному для работы виду.
#1
Скачайте архив с данными. Разархивируйте файлы в проект курса. Импортируйте данные в R. У вас должно получиться 4 датасета с данными с 4-х листов Excel-файлов. Назовите их base_time
, base_acc
, super_time
и suoer_acc
для времени реакции и точности и условиях с базовыми и суперординатными категориями соответственно.
Возникли ли какие-то странности?
В качестве ответа введите число строк, которые необходимо пропустить при импорте данных, чтобы они прочитались корректно.
Подсказки
Как делать задание?
- Необходимо скачать архив с данными и разархивировать его в проект курса.
- Далее нужно загрузить четыре датасета в четыре разных объекта, прочитав данные из Excel-файлов.
- После загрузки проверьте, корректно ли загрузились данные. При необходимости воспользуйтесь документацией в функций чтения данных.
Что надо сделать?
- Скачайте архив с данными и разархивируйте его в проект курса.
- Загрузите датасеты из Excel-файлов с помощью функции
read_xlsx()
из пакетаreadxl
. - Обратите внимание, как прочитались заголовки колонок. Откройте справку по функции
read_xlsx()
—?read_xlsx
— и ознакомьтесь в работой аргeментаskip
. - Скорректируйте код загрузки данных.
#2
Проверьте, совпадает ли количество строк в получившихся датасетах.
Для самопроверки введите число строк, если оно совпадает во всех датасетах, и нет
, если оно отличается хотя бы в одном.
Подсказки
Как делать задание?
Что надо сделать?
Ответ неверный
#3
Выгрузите соцдем, содержащийся в данных, в отдельный датасет. Соедините обе его части в один объект.
В качестве ответа введите число пропущенных значений в получившемся датасете. Если их нет, введите 0.
Подсказки
Как делать задание?
- Определите, в каких датасетах и колонках содержится соцдем в представленных данных.
- Отберите необходимые колонки из данных.
- Если соцдем находится в нескольких датасетах, объедините все имеющиеся части в один объект.
Что надо сделать?
- Посмотрите в описании, как организованы данные и в какую их часть записан соцдем.
- Извлеките необходимые колонки с помощью
select()
. - При необходимости объедините части соцдема в один объект с помощью
bind_rows()
.
#4
Удалите пропущенные значения из данных соцдема, если они есть, и задайте имена колонок — sex
и age
соответственно.
Для самопроверки введите общее количество испытуемых в выборке эксперимента.
Подсказки
Как делать задание?
Что надо сделать?
Ответ неверный
#5
Удалите из данных эксперимента лишние строки и столбцы. В объектах должно остаться только то, что относится к экспериментальным данным. Лишними считайте те столбцы, которые не имеют названия, и те строки, в которых не указан идентификатор респондента. Перезапишите имеющиеся объекты.
Подсказки
Как делать задание?
- Изучите структуру датасетов с экспериментальными данными. Найдите в ней общие паттерны.
- В данном случае из-за сходной структуры данных уместно написать короткую функцию, которая будет отбирать из датасетов только те строки и столбцы, в которых содержатся экспериментальные данные.
- Примените функцию на имеющихся датасетах и перезапишите имеющиеся объекты, сохранив в них только экспериментальные данные.
Что надо сделать?
- Изучите структуру датасетов с экспериментальными данными и определите номера колонок и строк, которые нобходимо отобрать.
- Напишите функцию, которая будет принимать на вход датасет и отбирать из него необходимые колонки и строки — подойдут
select()
иslice()
. - Примените функцию на имеющихся датасетах и перезапишите имеющиеся объекты, сохранив в них только экспериментальные данные.
#6
Создайте в датасетах эксперимента новую переменную group
, содержащую информацию об уровне категории — базовая (base
) или суперординатная (super
).
Описание формата инпута.
Подсказки
Как делать задание?
Что надо сделать?
Ответ неверный
#7
Соедините датасеты с данными о точности и времени реакции друг с другом — base_acc
с super_acc
и base_time
с super_time
. Назовите новые датасеты acc
и time
соответственно.
Описание формата инпута.
Подсказка
Исходя из структуры имеющихся данных, выберите подходящий способ объединения датасетов и необходимую для этого функцию. В обоих случаях датасеты объдиняются одинаково.
#8
Сейчас получившиеся датасеты пребывают в широком формате. Переведите их в длинный формат и разделите колонку с сочетанием экспериментальных условий на две.
В датасете должны содержаться следующие колонки:
id
— идентификатор испытуемогоvisual_setsize
— количество стимулов в пробеmemory_setsize
— количество категорий для запоминанияreaction_time/accuracy
— время реакции / точность (в зависимости от датасета)
При необходимости переименуйте столбцы.
Описание формата инпута.
Подсказки
- Для корректного приведения к длинному формату, определите колонки, которые не должны участвовать в преобразовании.
- Разделяя колонку с сочетанием экспериментальных условий, задайте разделитель, наиболее подходящий для значений, которые в ней содержатся.
#9
Объедините все данные в один датасет, который будет содержать следующие колонки:
id
— идентификатор испытуемогоgroup
— уровень категорииvisual_setsize
— количество стимулов в пробеmemory_setsize
— количество категорий для запоминанияreaction_time
— время реакцииaccuracy
— точность
Сохраните результат в переменную hybrid
.
Описание формата инпута.
Подсказка
Исходя из структуры имеющихся данных, выберите подходящий способ объединения датасетов и необходимую для этого функцию.
#10
На получившемся датасете рассчитайте среднее, минимальное и максимальное время реакции, а также его стандартное отклонение, по всем сочетаниям независимых переменных.
Для самопроверки в поле ниже введите среднее время реакции в группе base
при visual_setsize
12 и memory_sesize
4, округленное до третьего знака после запятой.
Подсказки
Как делать задание?
Что надо сделать?
Ответ неверный
Дополнительные задания
#1
В нашем случае названия файлов данных, которые у нас есть, содержат названия экспериментальных условий (base.xlsx
и super.xlsx
). Нам повезло, что эти название короткие, простые и их всего два — мы можем задать их вручную. Однако так случается не всегда, и хорошо автоматизировать этот процесс, чтобы не допустить лишних опечаток.
Напишите код, с помощью которого можно вытащить вектор с экспериментальными условиями из названий файлов.
Описание формата инпута.
Подсказки
Как делать задание?
Что надо сделать?
Ответ неверный
#2
В ходе выполнения заданий вы могли заметить, что часто мы выполняли одни и те же преобразования с разными датасетами. Так как входные датасеты имеют схожую структуру, можно оптимизировать усилия.
Напишите функцию, которая будет:
- принимать на вход путь к файлу, в котором лежат данные
- а также другие необходимые для предобработки аргументы
- предобрабатывать их
- возвращаемое задание может различаться в зависимости от способа реализации функции
Тело функции соберите из кода, который вы написали в ходе выполнения задания основной части.
При необходимости можете использовать написанную функцию в какой-либо другой последовательности предобработки. По итогам предобработки должен получиться датасет, идентичный датасету hybrid
, полученному в задании 9.
Описание формата инпута.
Подсказки
Как делать задание?
Что надо сделать?
Ответ неверный
Следующие три задания посвящены написанию кода для генерации координатной сетки для стимулов в зрительном поиске.
Общий вид координатной сетки выглядит так:
В данном случае мы будем генерировать сетку для 21 стимула — в 3 ряда по 7 в каждом. На пересечении черных линий располагаются центры стимулов.
Поскольку стимулы не могут отображаться на одном и том же месте в каждой пробе, задается область, в которой стимул может свободно колебаться от пробы к пробе. Однако чтобы они на сталкивались друг с другом, предусматривается зазор между областями их свободного колебания.
- Разрешение (размер) экрана (
res_x
×res_y
): 1920×1080 - Зазор между областями колебания стимулов (
gap
): 10 - Количество стимулов по ширине экрана (
n_x
): 7 - Количество стимулов по высоте экрана (
n_y
): 3 - Горизонтальный отступ от края экрана (
margin_x
): 100 - Вертикальный отступ от края экрана (
margin_y
): 100 - Горизонтальный размер стимула (
stim_size_x
): 100 - Вертикальный размер стимула (
stim_size_y
): 100 - Количество проб, для которых надо сгенерировать координаты (
n_trials
): 30
Все значения указаны в пикселях, кроме количества проб.
#3
Рассчитайте координаты центров стимулов.
Необходимо получить два вектора — centers_x
и centers_y
— которые будут содержать координаты центров стимулов по x
и по y
соответственно. Количество значений в векторах должно совпадать с количетвом стимулов по ширине и высоте экрана соответственно.
Исходными параметрами, необходимым для расчета координат центра являются res_x
, res_y
, margin_x
, margin_y
, n_x
, n_y
.
Для самопроверки в поле ниже введите через запятую значения координат центров по x
, затем точку с запятой, а далее — значения координат центров по y
. Проверка игнорирует все пробелы.
Подсказки
Как делать задание?
- Используя данные о разрешении экрана, рассчитайте расстояния между центрами стимулов по
x
иy
с учетом отступов от краёв экрана. - Создайте две последовательности от самого левого (нижнего) положения стимула до самого правого (верхнего) положения стимула с шагом, равным расстоянию между центрами стимулов.
- Скорректируйте координаты с учетом позиции начала координат в центре экрана.
Что надо сделать?
- Рассчитайте расстояния между центрами стимулов.
- Вычтите из разрешения экрана отступы, чтобы получить размеры поля, где могут располагаться стимулы.
- Разделите соответствующие размеры на количество необходимых расстояний.
- Расстояний между стимулами на одно больше, чем самих стимулов (см. рисунки выше).
- Сгенерируйте последовательности соответствующих координат центров стимулов:
- Для
x
от самого левого до самого правого положения стимула с шагом, равным расстоянию между центрами поx
. - Для
y
от самого нижнего до самого верхнего положения стимула с шагом, равным расстоянию между центрами поy
.
- Для
- Скорректируйте координаты с учетом позиции начала координат в центре экрана: из полученных координат вычтите половину разрешения экрана по горизонтали и вертикали соответственно.
Ответ неверный
- Проверьте, правильно ли заданы входные параметры для расчета координат.
- Проверьте, разделили ли вы значения в векторах запятыми.
- Проверьте, отделили ли вы вектора друг от друга точкой с запятой.
#4
Рассчитайте, на сколько максимально стимул может отклоняться по вертикали и горизонтали от координат центра, чтобы не сталкиваться с другими стимулами (jitter_x
и jitter_y
). Так как отклонения будут симметричны, учтите только одну сторону отклонения по одной оси — влево и вниз или вправо и вверх.
Исходными параметрами, необходимым для расчета максимального отклонения являются gap
, stim_size_x
, stim_size_y
, а также расстояние между центрами стимулов.
Если в ходе вычислений получаются нецелые значения, округлите их до ближайшего целого вниз.
Для самопроверки введите через запятую значения jitter_x
и jitter_y
. Проверка игнорирует все пробелы.
Подсказки
Как делать задание?
Что надо сделать?
Ответ неверный
#5
Сгенерируйте координаты стимулов для нескольких экспериментальных проб.
- Количество проб задано параметров
n_trials
. - Итоговый датасет должен содержать колонку
trial
, которая будет задавать номер пробы, и колонкиpos1
…posN
, гдеN
— общее количество стимулов на экране. Таким образом, в каждой колонке должны быть заданы координаты для отдельного стимула на экране. Количество стимулов на экране определяется параметрамиn_x
иn_y
. - Координаты в колонках
pos1
…posN
должны быть представлены в формате[x,y]
. Между символами не должно быть пробелов. - Для каждого стимула в каждой пробе должны быть сгенерированы уникальные координаты с учетом возможного колебания стимула вокруг координат его центра. Диапазон колебаний по обеим осям задается значениями
jitter_x
иjitter_y
.
Ниже представлен вариант итогового датасета.
Описание формата инпута.
Подсказки
Полезные функции:
outer()
as.vector()
rep()
separate()
,unite()
sample()
mutate()
paste()
,str_c()
pivot_wider()