Seite 1 von 1

Zahlen in Freitext-Antwort herausfiltern?

BeitragVerfasst: Mi 15. Aug 2018, 10:02
von heymax
Hallo zusammen,

im Rahmen meiner Masterarbeit habe ich eine Umfrage auf einem Online-Shop mit ingesamt 4000 Teilnehmern durchführen können.
Leider hatte ich in der Fragebogenkonzeption eine Sache nicht durchdacht und stehe nun vor folgender Herausforderung.

Der Teilnehmer wurde für ein Produkt gebeten einen Preis in Euro anzugeben. Da es ein Freitext war, konnten die Teilnehmer natürlich alles was sie wollten eingeben.

Beispiele für die Eingaben waren:

50,00
Fünzig
Ich würde 50 euro zahlen
FÜNFZICH
€ 50
50 €

Ich möchte gerne den Durchschnitt berechnen, aber dafür muss ich natürlich alle Werte in einer gleichen Form vorliegen haben.
Nun die Frage: Wie gehe ich da am besten vor?

Mir ist natürlich klar, dass Antworten wie «Fünfzig» von mir händisch umgeschrieben werden müssen. Da aber 80% der Antworten Zahlen enthalten, gehe ich davon aus, dass für diese bestimmt eine elegante Lösung gibt?

Freue mich auf eure Rückmeldung und bin für jede Antwort sehr dankbar.

Viele Grüße,
Max

Re: Zahlen in Freitext-Antwort herausfiltern?

BeitragVerfasst: Mi 15. Aug 2018, 11:14
von ponderstibbons
Superkrude, aber ich habe momentan keine Lust, was mit LOOP oder VECTOR zu programmieren:

Die Ausgangsvariable sei hier zahlbereit genannt und eine Länge von 32 angenommen (Namen und Länge den tatsächlichen Gegebenheiten anpassen).

*** Neue Variable bilden, mit Daten in Kleinschreibung:
STRING zahlbereit2 (A32) .
COMPUTE zahlbereit2=LOWER(zahlbereit).
EXECUTE.

***Ersetze Zeichen durch Leerzeichen (hier nur exemplarisch für einige Buchstaben/Zeichen - Handarbeit mit copy-paste erforderlich)
STRING zahlbereit.zahl (A32) .
COMPUTE zahlbereit.zahl=REPLACE(zahlbereit2,"a"," ").
EXECUTE.
**** Achtung, nun Änderung der Variable in der Klammer nach REPLACE .
COMPUTE zahlbereit.zahl=REPLACE(zahlbereit.zahl,"b"," ").
EXECUTE.
COMPUTE zahlbereit.zahl=REPLACE(zahlbereit.zahl,"c"," ").
EXECUTE.
*** (etc.) .
COMPUTE zahlbereit.zahl=REPLACE(zahlbereit.zahl,"z"," ").
EXECUTE.

COMPUTE zahlbereit.zahl=REPLACE(zahlbereit.zahl,"€"," ").
EXECUTE.

COMPUTE zahlbereit.zahl=REPLACE(zahlbereit.zahl,"!"," ").
EXECUTE.

****Leerzeichen loswerden
COMPUTE zahlbereit.zahl=LTRIM(zahlbereit.zahl).
EXECUTE.
COMPUTE zahlbereit.zahl=RTRIM(zahlbereit.zahl).
EXECUTE.

****Numerische Variable bilden
COMPUTE zahlbereitschaft=NUMBER(zahlbereit.zahl,F3).
EXECUTE.


Mit freundlichen Grüßen

PonderStibbons

Re: Zahlen in Freitext-Antwort herausfiltern?

BeitragVerfasst: Do 16. Aug 2018, 18:21
von heymax
Hi PonderStibbons,

vielen Dank für deine Hilfe! Ich habe dein Vorgehen verstanden, nur leider klappt es nicht. Jedes mal wenn SPSS ein Buchstaben mit einem Leerzeichen ersetzt, wird mit dem nächsten Befehl das Zeichen von dem Schritt zuvor wieder zurückgeholt und dafür das neue Zeichen gelöscht.

Bsp.

500 euro

COMPUTE Q14.zahl=REPLACE(EURO_MM,"e"," ").
EXECUTE

-> 500 uro

COMPUTE Q14.zahl=REPLACE(EURO_MM,"r"," ").
EXECUTE

-> 500 eu o

--- leider fügt er immer wieder das zuletzt gelöscht Zeichen wieder ein :(. Woran kann das liegen?

Re: Zahlen in Freitext-Antwort herausfiltern?

BeitragVerfasst: Do 16. Aug 2018, 19:53
von heymax
… ich war zu dumm zum richtig lesen. Hat funktioniert! Vielen lieben Dank! :P

Re: Zahlen in Freitext-Antwort herausfiltern?

BeitragVerfasst: Fr 17. Aug 2018, 09:16
von ponderstibbons
Ich hätte sicherheitshalber auf den Wechsel beim 2. REPLACE hinweisen sollen, ist tatsächlich leicht zu übersehen. Habe das nun eingefügt.

Re: Zahlen in Freitext-Antwort herausfiltern?

BeitragVerfasst: Fr 17. Aug 2018, 09:47
von heymax
Ja genau da lag mein Fehler :).Danke dir!