Подсчет количества изменений переменных - PullRequest
0 голосов
/ 05 сентября 2018

Я смотрю на создание переменной контроля качества для набора данных, над которым я работаю. Это в длинном формате с каждым предметом, имеющим> 100 строк. Эти строки представляют временные интервалы (в хронологическом порядке), в которые они записали код активности. Что было бы действительно здорово, так это создать новую переменную, которая подсчитывает, сколько раз человек изменял бы свой код активности (в идеале игнорируя уже определенные отсутствующие данные).

Кто-нибудь знает, с чего начать? Все, что я могу видеть в опциях, - это создать таблицу частот того, как часто происходило каждое действие. Вместо того, сколько раз они менялись.

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 05 сентября 2018

Сначала я создам поддельные данные для демонстрации:

data list list/ID (a1) actvt1 to actvt5 (5f1).
begin data
"a", 1, 1, 2, 2, 3
"b", 1,  , 1, 2, 2 
"c", 1,  , 2, 2, 
"d",  , 1, 1, 1, 2
"e",  ,  , 3, 2, 1
end data.
varstocases /make activity from actvt1 to actvt5/null=keep.

Следующий синтаксис пропустит отсутствующие данные и подсчитает количество изменений в кодах активности для каждого идентификатора - добавление номера в набор данных.

compute tmp=activity.
if $casenum>1 and missing(tmp) and ID=lag(ID) tmp=lag(tmp).
if $casenum>1 and ID=lag(ID) and tmp<>lag(tmp) change=1.
aggregate /out=* mode=add /break=ID /changes=sum(change).
...