Łukasz Leszczyński

Łukasz Leszczyński Badacz społeczny,
koordynator
regionalny,
specjalista ds....

Temat: Tworzenie nowej zmiennej z istniejących

Witam,
mam problem z następującym zadaniem...
Zmienną wiek zrekoduj na zmienną wiek w latach, a następnie nowo utworzoną zmienną zrekoduj na wiek w latach w przedziałach:
- do 40 lat
- powyżej 40 lat

Wykorzystując zmienną płeć oraz zmienną wiek w latach w przedziałach utwórz nową zmienną: wiekplec o następujących kategoriach:

1. młodzi mężczyźni do 40 lat
2. dojrzali mężczyźni powyżej 40 lat
3. młode kobiety do 40 lat
4. dojrzałe kobiety powyżej 40 lat

Wiem jak zrobić zmienną w przedziałach ale nie wiem jak mam zrobić tą kolejną zmienną wiekplec??

Ktoś pomoże??Łukasz Leszczyński edytował(a) ten post dnia 10.01.10 o godzinie 12:27
Piotr Zimolzak

Piotr Zimolzak Socjolog, laureat I
miejsca IV edycji
Konkursu Młodych
Ba...

Temat: Tworzenie nowej zmiennej z istniejących

Jest taki sprytny sposób, że tworzysz nową zmienną dwucyfrową, gdzie cyfra dziesiątek oznacza płeć, a cyfra jedności przedział wiekowy (lub na odwrót).

Dla przykładu

compute plec_wiek = 10*plec + wiek.

W ten sposób załatwisz problem dwuwymiarowości zmiennej. Pozostaje tylko przypisac odpowiednie etykiety.

Inna metoda to zabawa z instrukcjami warunkowymi np.

DO IF (plec=1 and wiek=1).
compute plec_wiek = 1.
ELSE IF(plec 1 and wiek=2).
compute plec_wiek =2.
itd. itd. (az do wyczerpania wszystkich kombinacji).
END IF.

Do wyboru do koloru :) Pozdrawiam

Temat: Tworzenie nowej zmiennej z istniejących

mozna to napisac z poziomu syntaxa: zalozmy ze zmienna plec kodowana jest nastepujaco: 1 - m, 2 - k i zakladam ze w sklad I kategorii wchodza osoby majace 40 lat

if ((plec = 1) & (wiek < 41)) wiekplec =1.
if ((plec = 1) & (wiek > 40)) wiekplec = 2.
if ((plec = 2) & (wiek < 41)) wiekplec =3.
if ((plec = 2) & (wiek > 40)) wiekplec = 4.
exec.

val lab wiekplec
1'młodzi mężczyźni do 40 lat'
2' dojrzali mężczyźni powyżej 40 lat'
3' młode kobiety do 40 lat'
4' dojrzałe kobiety powyżej 40 lat'.
exec.
Łukasz Leszczyński

Łukasz Leszczyński Badacz społeczny,
koordynator
regionalny,
specjalista ds....

Temat: Tworzenie nowej zmiennej z istniejących

dzięki, czy można to zrobić dzięki: przekształcenia > oblicz wartości?
i tam zrobić?
(plec = 1) & (wiek < 41)) wiekplec =1.
if ((plec = 1) & (wiek > 40)) wiekplec = 2.
if ((plec = 2) & (wiek < 41)) wiekplec =3.
if ((plec = 2) & (wiek > 40)) wiekplec = 4.

Temat: Tworzenie nowej zmiennej z istniejących

proponuje tak:

plik->nowy->polecenia, nastepnie przeklej to:

if(plec = 1) & (wiek < 41)) wiekplec =1.
if ((plec = 1) & (wiek > 40)) wiekplec = 2.
if ((plec = 2) & (wiek < 41)) wiekplec =3.
if ((plec = 2) & (wiek > 40)) wiekplec = 4.
exec.

pozniej tylko uruchom -> wszystko

powinno dzialac :)
Łukasz Leszczyński

Łukasz Leszczyński Badacz społeczny,
koordynator
regionalny,
specjalista ds....

Temat: Tworzenie nowej zmiennej z istniejących

ale nie chodzi mi o Syntaxa...jak można to zrobić bez niego, za pomocą polecań dostępnych w głównym oknie.

konto usunięte

Temat: Tworzenie nowej zmiennej z istniejących

Jak chcesz to zrobic na poziomie okien to :

albo wybrac zmienne ktore spelniaja oba kryteria np: plec =1 i wiek<40 i zakodowac je recznie.

albo zakodowac K=1 i M=2, wiek ponizej 40 jako 3 i wiek powyzej jako 4 a potem kazac mu obliczyc nowa zmienna ktora jest iloczynem - otrzymasz wyniki 3,4,6,8, ktore sobie zrekodujesz na te sama zmienna jako 1,2,3,4 i opiszesz czym sa wartosci.

Duzo prosciej jest to zrobic w syntaxie.

Pozdrawiam
Łukasz Leszczyński

Łukasz Leszczyński Badacz społeczny,
koordynator
regionalny,
specjalista ds....

Temat: Tworzenie nowej zmiennej z istniejących

dzięki za pomoc.

właśnie syntax ułatwia sprawę.
Agnieszka Małecka

Agnieszka Małecka Student, Wyższa
Szkoła Finansów i
Zarządzania w
Warszawie

Temat: Tworzenie nowej zmiennej z istniejących

Witam,
wasze wyjaśnienia bardzo mi pomogły, można by wręcz powiedzieć, że uratowały mi życie:) dziękuje wam bardzo, pozdrawiam ;)

konto usunięte

Temat: Tworzenie nowej zmiennej z istniejących

Witam,
Ciągle mam problemy z tworzeniem nowej zmiennej i już naprawdę nie wiem dlaczego. Teraz wyskakuje mi taki błąd:

>Błąd nr 4672
>Liczba zmiennych przeznaczonych do rekodowania nie odpowiada liczbie zmiennych
>po słowie kluczowym INTO.
>Polecenie nie zostało wykonane.

Wprawdzie łączę ze sobą dwa razy dwie kategorie (np. zamiast osobno "pracuje w pełnym wymiarze godzin" i "pracuje w niepełnym...", ale program powinien wtedy to przecież uwzględnić.

Czy ktoś miał kiedyś podobny problem? Będę wdzięczna za pomoc.
Bernadeta W.

Bernadeta W. analityk danych

Temat: Tworzenie nowej zmiennej z istniejących

Wyglada na to, ze uzywasz Recode i wtedy liczba zmiennych oryginalnych i nowych musi byc taka sama.
czyli powinno byc recode q1 (1,2=1)(else=copy) into q1recoded.
exe.

1,2 to kategorie, ktore probujesz polaczyc, wiec zmien sobie kody odpowiednio.

bBernadeta W. edytował(a) ten post dnia 13.11.10 o godzinie 15:55

konto usunięte

Temat: Tworzenie nowej zmiennej z istniejących

Dziękuję bardzo!

konto usunięte

Temat: Tworzenie nowej zmiennej z istniejących

hej, mam problem z utowrzeniem nowej zmiennej, wyskakuje mi bład:Błąd nr 4672
>Liczba zmiennych przeznaczonych do rekodowania nie odpowiada liczbie zmiennych
>po słowie kluczowym INTO.
>Polecenie nie zostało wykonane.

nie łącze żadnych kategorii tylko chce zamienić wiek wyrażony w roku urodzenia na 3 kategorie. Moze uzywam złego polecenia? Dziękuje z góry za pomoc:

RECODE v18
( LOWEST THRU 1971 = 1 )
( 1972 THRU 1984 = 2 )
( 1985 THRU 1993 = 3 )
(ELSE = COPY)
INTO KAT_WIEK
EXE.

Temat: Tworzenie nowej zmiennej z istniejących

.:
hej, mam problem z utowrzeniem nowej zmiennej, wyskakuje mi bład:Błąd nr 4672
>Liczba zmiennych przeznaczonych do rekodowania nie odpowiada liczbie zmiennych
>po słowie kluczowym INTO.
>Polecenie nie zostało wykonane.

nie łącze żadnych kategorii tylko chce zamienić wiek wyrażony w roku urodzenia na 3 kategorie. Moze uzywam złego polecenia? Dziękuje z góry za pomoc:


[quote]RECODE v18
( LOWEST THRU 1971 = 1 )
( 1972 THRU 1984 = 2 )
( 1985 THRU 1993 = 3 )
(ELSE = COPY)
INTO KAT_WIEK
EXE.[/quote]


Kropka po KAT_WIEK. Teraz rekodujesz v18 na dwie zmienne - KAT_WIEK i EXE - stąd błąd.

Temat: Tworzenie nowej zmiennej z istniejących

Witam, ja mam problem z utworzeniem nowej zmiennej osoby prawostronne - z pięciu zmiennych, jak to zrobić, załóżmy , że jest rzut prawa ręką , chwyt prawą ręką, kopnięcie prawą nogą, skok na prawe nodze i prawe oko. Wybór kończyny lub oka oznaczany jest jako 11 a brak wyboru jako 999. Czy ktoś mógłby mi pomóc? Analogicznie mogłabym sobie ustalić leworęcznych i skrzyżowanych.
Z góry dziękuje za pomoc
Błażej Dyczewski

Błażej Dyczewski Dr n. hum. w
zakresie socjologii.
Projekty PO KL,
szkolen...

Temat: Tworzenie nowej zmiennej z istniejących

O ile dobrze zrozumiałem, to można do tego wykorzystać MENU>Przekształcenia>Oblicz wartości
W wyrażeniu numerycznym wpisujesz np. 1 (prawostronni), a w JEŻELI Zmienna_1 = 11 & Zmienna_2 = 11 & Zmienna_2 = 11, itd

Utworzy Ci się nowa zmienna, w której wartość 1 przyjmą tylko osoby prawostronne. Następnie na tej samej zmiennej zmieniasz warunek dla lewostronnych (Zmienna_1 = 999 & Zmienna_2 = 999 & Zmienna_2 = 999, itd) tylko PAMIĘTAJ, żeby zmienić wyrażenie numeryczne na 2 (osoby lewostronne). Systemowe braki danych będą mówiły, że osoby w jakiś czynnościach są prawostronne a w innych lewostronne.
________________________________________

Zmienną dla skrzyżowanych możesz wyliczyć wprowadzając w IF wyrażenie OR zamiast &. Wiele zależy też czy w tych 5 zmiennych masz jakieś systemowe braki danych. Błażej Dyczewski edytował(a) ten post dnia 13.01.12 o godzinie 12:47

Następna dyskusja:

SPSS tworzenie jednej zmien...




Wyślij zaproszenie do