Temat: Zaawansowana manipulacja danymi - dobry rebus :)

Respondentów poproszono o uszeregowanie 22 koncepcji produktu od najbardziej do najmniej atrakcyjnej, o unikalnych numerach z zakresu 1-22. Dane zapisano w następujący sposób:

- Każdy respondent to jedna obserwacja
- W zbiorze danych są 23 zmienne - 1 zmienna ID unikalna dla każdego respondenta i 22 zmienne (PREF1 to PREF22) zawierające informacje o tym, jak respondent uszeregował koncepcje.
- Każda zmienna (PREF1 to PREF22) zawiera informację o numerze produktu, który znalazł się na odpowiadającym jej miejscu.
- Przykład: Respondent za najatrakcyjniejszą uznał koncepcję 8 - więc dla niego PREF1=8, za drugą, koncepcję 13, więc PREF2 = 13

... mam nadzieję, że jak na razie opisałem to jasno.

Teraz chodzi o to, żeby dane przekształcić w taki sposób, aby:

- Każdy respondent był reprezentowany przez jedną obserwację
- W zbiorze danych były 23 zmienne - 1 zmienna ID unikalna dla każdego respondenta i 22 zmienne (RANK1 to RANK22), zawierające o tym, jak respondent uszeregował koncepcje
- Każda zmienna zawierała informację o tym, na którym miejscu znalazł się produkt o numerze odpowiadającym liczbie na końcu jej nazwy.
- Przykład: Respondent za najatrakcyjniejszą uznał koncepcję 8 - więc dla niego PREF8 = 1, za drugą - koncepcję 13, więc PREF13=2 i tak dalej....

Potem muszę dane jeszcze "obrócić" i zrobić VAR TO CASES, ale to już pikuś.

Ktoś ma jakieś pomysły?

BTW: Oryginalny zbiór danych to carpet_prefs.sav z Tutoriala SPSS do modułu Conjoint.

Będę bardzo wdzięczny za wszelkie wskazówki.

Pozdrawiam!
Wojciech R.

Wojciech R. Doktor nauk
ekonomicznych/analit
yk/statystyk/dydakty
k

Temat: Zaawansowana manipulacja danymi - dobry rebus :)

Według tego, co zrozumiałem, to rozwiązanie powinno wyglądać następująco:

define !makro(!pos=!tokens(1)/!pos=!tokens(1)).
!do !i=1 !to 22.
!do !j=1 !to 22.
do if !concat(!1,!i)=!j.
compute !concat(!2,!j)=!i.
end if.
!doend.
!doend.
!enddefine.

!makro pref prefer.
exe.

Nowe wartości zapisane są w zmiennych od prefer1 do prefer22.
Jeżeli się mylę, to proszę o sprostowanie :)

Pozdrawiam,
W.Wojciech Roszka edytował(a) ten post dnia 25.01.10 o godzinie 20:44

Temat: Zaawansowana manipulacja danymi - dobry rebus :)

Śmiga idealnie.

Co prawda już wcześniej poradziłem sobie z tym problemem przy użyciu arkusza kalkulacyjnego, ale efekt jest ten sam. Muszę sobie koniecznie przestudiować to makro :)



Wyślij zaproszenie do