Выбор случаев на основе значений в предыдущих случаях - PullRequest
1 голос
/ 23 мая 2019

У меня есть следующий список в SPSS:

Subjekt    Reactiontime       correct/incorrect
1          x                  1
1          x                  0
1          x                  1
1          x                  0

Теперь я хочу выбрать все строки / случаи, следующие за ПОСЛЕ «0» (в столбце «правильный / неправильный»), потому что я хочу вычислить среднее значение всех времен реакции, следующих за «0».

Как я могу это сделать в SPSS?

Ответы [ 2 ]

1 голос
/ 26 мая 2019

Вот более короткий подход (хотя и менее общий, чем полный процесс @ user45392):

if lag(correct)=0 ReactiontimeAfter0=Reactiontime.

теперь вы можете просто запустить means ReactiontimeAfter0.

1 голос
/ 24 мая 2019

Один из способов сделать это - добавить столбец, который отслеживает, была ли предыдущая строка равной 0 в вашем поле correct, а затем вычислить среднее значение Reactiontime для этих случаев.

Сначала давайте создадим переменную, чтобы помечать случаи, которые мы хотим включить в среднее значение.

* set prev_correct to 0 if the prior case was 0 .
IF (LAG(correct)=0) prev_correct=0 .
* else set to -1 .
RECODE prev_correct (SYSMIS=-1) .
EXE .

Теперь мы можем вычислить среднее время реакции, разделив его по нашей новой переменной.

MEANS Reactiontime BY prev_correct /CELLS MEAN .

Или, если мы хотим вывести среднее значение, только когда prev_correct = 0.

TEMP .
SELECT IF prev_correct=0 .
MEANS Reactiontime /CELLS MEAN .
...