Seite 1 von 1

Zeichenfolgen von Variablennamen auslesen

BeitragVerfasst: Fr 24. Apr 2020, 15:05
von miner
Hallo,

ich will einen Mittelwert MEAN berechnen. Da der Mittelwert aus sehr, sehr vielen Variablen (mehreren Hundert) berechnet werden soll, kann ich für die Berechnung von MEAN nicht alle beteiligten Variablennamen explizit angeben, sondern will mit dem Schlüsselwort to arbeiten, etwa so:

Code: Alles auswählen
compute neue_var = MEAN(v_1 to v_n).
execute.


Dummerweise sollen nicht alle Variablen v_n in die Berechnung des Mittelwerts MEAN mit einfließen, sondern nur eine Teilmenge der Variablen v_n.

Genauer: In die Berechnung des Mittelwerts MEAN sollen nur diejenigen Variablen mit einfließen, bei denen eine bestimmte Zeichenfolge Teil des Variablennamens ist. Nehmen wir an, die Menge der Variablennamen v_n wäre:

Code: Alles auswählen
1234[b]2014[/b]567
1774[b]2014[/b]567
1434[b]2014[/b]567
1124[b]2014[/b]567
...
1264[b]2015[/b]567
9343[b]2015[/b]567
...
0234[b]2016[/b]567
...
1274[b]2017[/b]567
...
1884[b]2018[/b]567


Nehmen wir weiterhin an, in die Berechnung von des Mittelwerts MEAN sollen ausschließlich Variablennamen einfließen, bei denen die Zeichenfolge "2015" ein Teil des Variablennamens ist.

Um das zu bewerkstelligen, müsste ich direkt Zeichen aus dem Variablennamen auslesen können um damit zu arbeiten. Ich habe allerdings bislang noch keine Möglichkeit gefunden, Zeichen aus dem Variablennamen zwecks Weiterverarbeitung direkt auslesen zu können.

Ich stelle mal in Pseudocode dar, wie ich mir das in Etwa vorstellt:

Code: Alles auswählen
* Berechne einen Mittelwert MEAN, ziehe zur Berechnung des Mittelwerts alle Variable heran, bei denen die Zeichenfolge "2015" Teil des Variablennamens ist. *

compute neue_Var = MEAN ( if ("2015"istTeildesVariablennamens = TRUE) (12342014567 to 18842018567)).
execute.



Bislang fehlt mir zur Umsetzung eine Funktion mit der ich direkt auf die Zeichen der Variablennamen zugreifen kann. Mit welcher Funktion oder mit welchen Funktionen könnte das gelingen?

Wenn es eine solche Funktion in SPSS nicht geben sollte, wie könnte ein mögliches Work-around aussehen?

Besten Dank für jeden konstruktiven Hinweis! :)

Grüße,
Miner

Re: Zeichenfolgen von Variablennamen auslesen

BeitragVerfasst: Fr 24. Apr 2020, 15:23
von strukturmarionette
Hi,

- welche SPSS-Variablentypen liegen vor?

Gruß
S.

Re: Zeichenfolgen von Variablennamen auslesen

BeitragVerfasst: Fr 24. Apr 2020, 15:31
von miner
Hi Strukturmarionette,

strukturmarionette hat geschrieben:Hi,

- welche SPSS-Variablentypen liegen vor?

Gruß
S.


Es handelt sich um numerische Variablen. Kannst Du mir helfen?

Wäre irrsinnig toll noch diese Woche Hilfe/einen Lösungsansatz zu finden. :)

Grüße,
Miner

Re: Zeichenfolgen von Variablennamen auslesen

BeitragVerfasst: Sa 25. Apr 2020, 00:00
von ponderstibbons
Datei umstrukturieren -> Variablen in Fälle, und dadurch alle Variablen in eine Spalte schreiben lassen.
Dabei im Schritt 5 "Erstellen einer Indexvariablen" den Button Variablennamen aktivieren.

In der neuen Datei eine Filtervariable erstellen unter Verwendung der Funktion CHAR.INDEX,
um alle Variablen zu filtern, die 2015 enthalten.

Die gefilterten Variablen Fallweise als Mittelwert zusammenfassen ("Aggregieren" mit der break-Variable
"Id" oder dergleichen aus der Ausgangsdatei).

Jeweils alle Fälle mit derselben "Id" löschen bis auf einen (select if(id ne lag(id)).

Das Ergebnis der Ausgangsdatei hinzufügen.

HTH

PonderStibbons

Re: Zeichenfolgen von Variablennamen auslesen

BeitragVerfasst: So 26. Apr 2020, 14:23
von ponderstibbons
Gern geschehen.

Re: Zeichenfolgen von Variablennamen auslesen

BeitragVerfasst: Mo 15. Jun 2020, 17:40
von miner
ponderstibbons hat geschrieben:Datei umstrukturieren -> Variablen in Fälle, und dadurch alle Variablen in eine Spalte schreiben lassen.
Dabei im Schritt 5 "Erstellen einer Indexvariablen" den Button Variablennamen aktivieren.

In der neuen Datei eine Filtervariable erstellen unter Verwendung der Funktion CHAR.INDEX,
um alle Variablen zu filtern, die 2015 enthalten.

Die gefilterten Variablen Fallweise als Mittelwert zusammenfassen ("Aggregieren" mit der break-Variable
"Id" oder dergleichen aus der Ausgangsdatei).

Jeweils alle Fälle mit derselben "Id" löschen bis auf einen (select if(id ne lag(id)).

Das Ergebnis der Ausgangsdatei hinzufügen.

HTH

PonderStibbons


Lieber PonderStibbons,

besten Dank für Deine Antwort, ich habe sie jetzt erst gesehen!

Ich werde bald wieder an einer ähnlichen Analyse arbeiten und beabsichtige, Deinen Lösungsvorschlag dann auszuprobieren! :)
Werde voraussichtlich hier dann noch mal schreiben! :)

Überdies hilft mir Dein Hinweis, meinen Wissen über die Möglichkeiten von SPSS, sozusagen meinen mentalen "Werkzeugkasten an SPSS-Tools" um ein Werkzeug zu erweitern. Es ist nur eine Frage der Zeit, bis ich von diesem Werkzeug gebrauch machen werden, sicher mehr als einmal.

Besten Dank nochmals für Deine Hilfe und Deine Bereitschaft, Deine Expertise zu teilen!

Grüße,
Miner


PS:
Hab etwas übersehen, oder ist dem Forum der Danke-Button abhanden gekommen? Würde ja sehr gerne davon Gebrauch machen wollen! :)