2017-01-20 10 views
2

У меня возникают трудности с достижением этой функциональности в SPSS. Набор данных отформатирован, как это (извинения для формата Excel)Объединение случаев и добавление переменных в SPSS

enter image description here

В этом примере агрегатная функция была использована для объединения случаев с помощью того же самого переменного. Другими словами, CITY, Tampa в примере, является переменной разрыва.

К сожалению, каждая запись для Tampa дает 10 уникальных температур за каждый день. Итак, первая запись для Tampa - дни 0-10, а вторая - дни 10-20, они предоставляют полезную информацию. Я не могу понять, как использовать агрегатную функцию для создания новых переменных, чтобы не потерять эти дни. Я хочу сделать это, так как хочу, чтобы я мог проводить тесты по средней температуре в Тампе в течение дней 0-20, по сравнению с днями 0-20 в других городах.

Мой текущий синтаксис:

AGGREGATE 
    /OUTFILE=* MODE=ADDVARIABLES 
    /BREAK=CITY 
    /Temp=Max(Temp). 

Но это не создает переменные, и я не уверен, с чего начать на этом направлении. Я проверил руководство SPSS и не видел это как вариант в совокупности, любая идея о том, какая функция может позволить эту функцию?

ответ

1

Если я правильно понимаю, вы пытаетесь реорганизовать всю информацию CITY в одну строку, а не сводить ее. Итак, вы ищете команду реструктуризации casestovars.

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

data list list/City (a10) temp1 to temp10 (10f6). 
begin data 
Tampa 10 11 12 13 14 15 16 17 18 19 
Boston 20 21 22 23 24 25 26 27 28 29 
Tampa 30 31 32 33 34 35 36 37 38 39 
NY 40 41 42 43 44 45 46 47 48 49 
Boston 50 51 52 53 54 55 56 57 58 59 
End data. 

casestovars нуждается в индексной переменной (например номер строки в пределах города). В вашем примере ваши данные не имеют индекс, поэтому следующие команды зделать:

sort cases by CITY. 
if $casenum=1 or city<>lag(city) IndVar=1. 
if city=lag(city) IndVar=lag(IndVar)+1. 
format IndVar(f2). 

Теперь мы можем реструктурировать:

sort cases by CITY IndVar. 
casestovars /id=CITY /index=IndVar/separator="_"/groupby=index. 

Это также будет работать, если у вас есть больше строк в городе ,

Важное примечание: мой искусственный индекс (IndVar) необязательно отражает исходный порядок строк в вашем файле. Если ваш файл действительно не содержит индекс и не упорядочен, поэтому первая строка представляет первые измерения и т. Д., То реструктурированный файл, соответственно, не будет упорядочен: предыдущие измерения могут появляться слева или справа от более поздние - в соответствии с их порядком в исходном файле. Чтобы этого избежать, вы должны попытаться определить реальный индекс и использовать его в casestovars.

+0

Это прекрасно, еще раз спасибо за помощь. Это очень полезно, и спасибо, что нашли время, чтобы расшифровать мою, по общему признанию, трудную для понимания должность. Хорошего дня! Ура! – George

0

Запустите EXECUTE или Transform> Run Pending Transformations, чтобы увидеть результаты команды AGGREGATE.