В SPSS я бы занялся этим (из того, что я могу собрать в ваших комментариях и вопросах), сделав новую идентификационную переменную ID для случаев, когда отстающие значения и DIP
соответствуют друг другу, а затем используйте CASESTOVARS
, чтобы переформатировать данные в широком масштабе.
******************************************************************.
*Fake data that looks like yours.
data list free/UID SIP DIP PROTOCOL SPORT.
begin data
1 1207697420 3232248333 17 53
2 3232248333 1207697420 17 47904
3 1 2 5 6
4 2 1 3 2
5 1 3 0 1
6 1 4 8 9
end data.
*Can make our own new id to reshape.
DO IF $casenum = 1.
compute new_id = 1.
ELSE IF SIP = lag(DIP) and DIP = lag(SIP).
compute new_id = lag(new_id).
ELSE.
compute new_id = lag(new_id) + 1.
END IF.
*then reshape from long to wide.
CASESTOVARS
/ID new_id.
LIST.
******************************************************************.
Это предполагает, что, как вы сказали в своем комментарии, что «DIP в одном наборе данных должен быть согласован с SIP во втором наборе данных, но только на следующий матч, отсортировано по UID». Тогда конечный результат выглядит так (с периодами, представляющими отсутствующие данные).
new_id UID.1 UID.2 SIP.1 SIP.2 DIP.1 DIP.2 протокола1 PROTOCOL.2 SPORT.1 SPORT.2
1.00 1.00 2.00 1.2E+009 3.2E+009 3.2E+009 1.2E+009 17.00 17.00 53.00 47904.00
2.00 3.00 4.00 1.00 2.00 2.00 1.00 5.00 3.00 6.00 2.00
3.00 5.00 . 1.00 . 3.00 . .00 . 1.00 .
4.00 6.00 . 1.00 . 4.00 . 8.00 . 9.00 .
Это ISN» t ясно из вашего первоначального вопроса , что дубликат, но если вы не хотите дубликатов, вы захотите избавиться от них до CASESTOVARS
. Если он определяется одинаковыми значениями для других переменных, но только с взаимозаменяемыми SIP
и DIP
, одна вещь, которую я делал в прошлом, состоит в том, чтобы создать две новые переменные и поместить меньшее значение в первое новое поле и большее значение во втором поле. Например.
DO IF SID >= DID.
compute ID1 = DID.
compute ID2 = SID.
ELSE.
compute ID1 = SID.
compute ID2 = DID.
END IF.
Затем вы можете использовать два новых ID
переменные для выявления дубликатов независимо от порядка исходных SIP
и DIP
значений.
Как избавиться от повторяющихся строк? –
DIP в одном наборе данных должен быть сопоставлен с SIP во втором наборе данных, но только в следующем матче, отсортированном по UID. –
Что определяет дубликат * точно *? Если другие переменные одинаковы, то только 'SIP' и' DIP' находятся в другом порядке? –