Я пытался определить способ сценария через R, но просто не могу его получить. У меня есть такой набор данных:Выберите определенные строки, основанные на предыдущем значении строки (в том же столбце)
Trial Type Correct Latency
1 55 0 0
3 30 1 766
4 10 1 344
6 40 1 716
7 10 1 326
9 30 1 550
10 10 1 350
11 64 0 0
13 30 1 683
14 10 1 270
16 30 1 666
17 10 1 297
19 40 1 616
20 10 1 315
21 64 0 0
23 40 1 850
24 10 1 322
26 30 1 566
27 20 0 766
28 40 1 500
29 20 1 230
, который идет намного дольше (около 1000 строк).
Из этого одного набора данных, я хотел бы создать 4 отдельных data.frames/таблицы можно экспортировать таблицы с, а также сделать мои собственные расчеты
Я хотел бы иметь data.frame (4 в общей сложности), по одному для каждого из этих точек пулевых:
- типа 10 строк, которые предшествуют типа 30 строк
- типа 10 строк, которые предшествуют типа 40 строк
- типа 20 строк, которые предшествуют по типу 30, строка
- типа 20 строк, которые предшествуют типа 40 строк
Я хотел бы для всех столбцов в соответствующих строках, которые будут помещены в эти новые таблицы, но только в том числе данные столбца типов строк 10 или 20 .
Например, первая таблица (тип 10 предшествует типа 30) хотели бы это на основе данных образца:
Trial Type Correct Latency
4 10 1 344
10 10 1 350
14 10 1 270
17 10 1 297
Второй стол (тип 10 предшествует типа 40):
Trial Type Correct Latency
7 10 1 326
20 10 1 315
24 10 1 322
Третий стол (тип 20 предшествует типа 30):
Trial Type Correct Latency
27 20 0 766
Четвертый стол (таблица 20 предшествует типа 40):
Trial Type Correct Latency
29 20 1 230
Я могу подмножество просто отлично, чтобы получить одну таблицу только из строк типа 10, а другую для строк типа 20, но я не могу выяснить, как создавать разные таблицы для строк типа 10 и 20 на основе предыдущего значения типа. Кроме того, проблема заключается в том, что «Trials» не в порядке (пропускает числа).
Любая помощь была бы принята с благодарностью. Спасибо.
Также, есть способ, чтобы включить предыдущую строку, так что выход в четвертый таблицы будет выглядеть примерно так:
Четвертый стол (стол 20 предшествуют типа 40):
Trial Type Correct Latency
28 40 1 500
29 20 1 230
Hi mtoto, я пробовал код, но я просто получаю пустой стол (только с заголовками столбцов). Любые предложения относительно того, что я могу делать неправильно? Спасибо. – pdhami
Я понял проблему, нам нужно использовать 'lag()' из 'dplyr', а не из пакета' stats'. Ответ обновлен. – mtoto
Вы также можете использовать его полностью в 'dplyr', используя' filter (df, Type == 10 & lag (Type) == 30) ' – User7598