String Variable codieren

Fragen und Diskussionen rund um die Arbeit mit SPSS. Für allgemeine Statistik-Themen, die nicht mit SPSS zusammenhängen, bitte das Statistik-Forum nutzen.
emma78
Beiträge: 9
Registriert: 24.01.2009, 15:36

Beitrag von emma78 »

HAllo,
vielen Dank für deine Mühe.
So ganz löst es mein Problem nicht, da ich ja für jeden Oberbegriff eine neue Variable anlegen muss und es ja auch sein kann, dass jemand mehrere Nennungen hat also z.B. ext und ous gesagt hat, was sich bei deinem Makro ja dann wieder überschreiben würde.
Na ja vielleicht muss ich dann ja doch für jede Kombination einzelne Zeilen schreiben...
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

So, emma78.

Würde das dein Problem lösen? ;-)

Code: Alles auswählen

DATA LIST FREE /    ID (f8.0) v1 (a20) v2 (a20) v3 (a20) v4 (a20) v5 (a20).
BEGIN DATA
1 haus ext hose hemd schlips
2 ext house hose tower pferd
3 tower house ext schaukel schlips
END DATA. 

BEGIN PROGRAM.
import spss

v_0=(['ouse', 'ous', 'use'])
v_1=(['ext', 'tex', 'te','xt'])
v_2=(['ower', 'auk', 'ips','ups','aps'])
v_3=(['sonst', 'sonst', 'nichts','nix','hallo','sechs'])
v_list = [v_0, v_1, v_2, v_3]


for i in range(len(v_list)):
   name=v_list[i]
   print name
   for k in range(len(name)):
           variable=name[k]
           print variable
           spss.Submit(r"""
           do repeat #i =v1 to v5.
           if INDEX(#i,'"""+variable+"""') >0 v_"""+str(i)+"""=1.
           end repeat.
           EXECUTE .
           """)
END PROGRAM. 
Gruß
drfg2008
emma78
Beiträge: 9
Registriert: 24.01.2009, 15:36

Beitrag von emma78 »

Ui, das sieht gut aus :D Das probiere ich morgen gleich aus, danke!
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

Es muss aber das Python-Plugin + Python installiert werden. Das ist bei SPSS 15 noch nicht automatisch dabei.

Gruß
drfg2008
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

wie ich gerade feststelle, hatte dir Bruce Weaver (uga edu) schon eine Antwort auf deine Frage gegeben.

https://groups.google.com/forum/#!topic ... discussion


???

Code: Alles auswählen

DATA LIST FREE /    ID (f8.0) v1 (a20) v2 (a20) v3 (a20) v4 (a20) v5 (a20).
BEGIN DATA
1 haus ext hose hemd schlips
2 ext house hose tower pferd
3 tower house ext schaukel schlips
END DATA. 


numeric text house tower (f1.0). /* the flag variables.
recode text to tower (else=0). /* initialize to zero.
vector haystack = v1 to v5. /* the original string variables.


do repeat
    needle = "ext" "ous" "tow" "wer" /
    flag = text house tower tower .
- loop # = 1 to 5.
-   if not flag flag = index(haystack(#),needle) GT 0.
- end loop if flag.
end repeat.
EXECUTE .
Gruß
drfg2008
Anzeige:Statistik und SPSS: Die besten Bücher
Als Buch oder E-Book - Jetzt bestellen
spss datenanalyse
SPSS - Moderne Datenanalyse - Jetzt bestellen!
statistik datenanalyse
Statistik - Der Weg zur Datenanalyse - Jetzt bestellen!
Antworten