[[put()]]
 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:create:functions:put [17.12.2018 20:21] – [put()] adminde:create:functions:put [15.12.2023 12:11] (aktuell) admin
Zeile 7: Zeile 7:
   * //Variable//\\ Die Kennung der internen Variable (s. unten), in welcher der //Wert// gespeichert werden soll. Die Kennung wird als String in Anführungszeichen angegeben, z.B. '''IV01_01'''.   * //Variable//\\ Die Kennung der internen Variable (s. unten), in welcher der //Wert// gespeichert werden soll. Die Kennung wird als String in Anführungszeichen angegeben, z.B. '''IV01_01'''.
   * //Wert//\\ Eine Zahl oder ein Text (String), welche%%(r)%% in der Variable abgelegt werden soll. Für gewöhnlich wird als zweiter Parameter eine Variable mit dem entsprechenden Wert angegeben.   * //Wert//\\ Eine Zahl oder ein Text (String), welche%%(r)%% in der Variable abgelegt werden soll. Für gewöhnlich wird als zweiter Parameter eine Variable mit dem entsprechenden Wert angegeben.
-  * //JedeVariable// (optional)\\ Normalerweise speichert `put()ausschließlich in [[de:create:questions:internal|interne Variablen]]. In Ausnahmefällen kann es sinnvoll sein, den Wert einer anderen Variable zu überschreiben. In diesem Fall kann ein dritter Parameter ''true'' angegeben werden.+  * //JedeVariable// (optional)\\ Normalerweise speichert ''put()'' ausschließlich in [[de:create:questions:internal|interne Variablen]]. In Ausnahmefällen kann es sinnvoll sein, den Wert einer anderen Variable zu überschreiben. In diesem Fall kann ein dritter Parameter ''true'' angegeben werden.
  
 **Warnung:** Verwenden Sie den dritten Parameter //JedeVariable// nur dann, wenn Sie genau wissen, was Sie tun und eine interne Variable nicht verwendet werden kann. Das Verändern von Antwortcodes kann die Validität des Datensatzes gefährden. Für die meisten Fälle sind die Funktionen ''[[:de:create:functions:preset]]'' und ''[[:de:create:functions:dropvalue]]'' deutlich besser geeignet. **Warnung:** Verwenden Sie den dritten Parameter //JedeVariable// nur dann, wenn Sie genau wissen, was Sie tun und eine interne Variable nicht verwendet werden kann. Das Verändern von Antwortcodes kann die Validität des Datensatzes gefährden. Für die meisten Fälle sind die Funktionen ''[[:de:create:functions:preset]]'' und ''[[:de:create:functions:dropvalue]]'' deutlich besser geeignet.
 +
 +**Tipp:** Wenn Sie nicht nur einen einzelnen Wert, sondern ein ganzes Array im Datensatz abspeichern möchten, verwenden Sie ''[[putlist]]''.
  
  
Zeile 20: Zeile 22:
  
  
-===== Beispiel: Berechnungen =====+===== Berechnungen =====
  
 Das folgenden Beispiel geht davon aus, dass ein Konstrukt in zwei Skalen mit den Frage-Kennungen AB01 und AB02 erhoben wird -- und dass eine interne Variable AB03_01 angelegt wurde, um den [[:de:general:indices|Skalenindex]] (Summenwert aller Items) zu speichern. Das folgenden Beispiel geht davon aus, dass ein Konstrukt in zwei Skalen mit den Frage-Kennungen AB01 und AB02 erhoben wird -- und dass eine interne Variable AB03_01 angelegt wurde, um den [[:de:general:indices|Skalenindex]] (Summenwert aller Items) zu speichern.
Zeile 44: Zeile 46:
  
  
-===== Beispiel: Codes transformieren =====+===== Antworten umkodieren ===== 
 + 
 +Das Umkodieren von Werten erfolgt typischerweise in der Datenauswertung, wenn Sie im Interview (z.B. in einem [[:de:create:php-filters]]) bereits die umkodierten Werte benötigen, können Sie das aber auch direkt in SoSci Survey erledigen. 
 + 
 +Wenn Sie beispielsweise die offene Texteingabe für das Alter aus der Variable "SD02_01" in die Kategorien <25 (1), 25-40 (2) und 40+ (3) umkodieren möchten, würden Sie auf der Seite nach der Altersfrage folgenden PHP-Code verwenden. 
 + 
 +<code php> 
 +$alter = (int)value('SD02_01'); 
 +if ($alter < 0) { 
 +  put('IV01_01', -1);  // Fehlercode für ungültige Altersangaben 
 +} elseif ($alter < 25) { 
 +  put('IV01_01', 1);  
 +} elseif ($alter <= 40) { 
 +  put('IV01_01', 2);  
 +} else { 
 +  put('IV01_01', 3);  
 +
 +</code> 
 + 
 +Das ''(int)'' wandelt die offene Eingabe in eine ganze Zahl um. Die interne Variable "IV01_01" im Beispiel muss voram im Fragenkatalog erstellt werden. 
 + 
 + 
 +===== Codes transformieren =====
  
 SoSci Survey speichert für Skalen jeweils positive Antwortcodes ([[:de:results:values]]). Sollten Sie im Datensatz für eine fünfstufige Skala den Wertebereich von -2 bis +2 benötigen, können Sie einzelne Variablen wie folgt umkodieren. SoSci Survey speichert für Skalen jeweils positive Antwortcodes ([[:de:results:values]]). Sollten Sie im Datensatz für eine fünfstufige Skala den Wertebereich von -2 bis +2 benötigen, können Sie einzelne Variablen wie folgt umkodieren.
Zeile 60: Zeile 84:
 // Nur gültige Werte (>0) speichern // Nur gültige Werte (>0) speichern
 if ($original > 0) { if ($original > 0) {
-  put('SK02_01', $original - 5);+  put('SK02_01', $original - 3);
 } else { } else {
   put('SK02_01', false);   put('SK02_01', false);
Zeile 70: Zeile 94:
 <code php> <code php>
 $org = value('SK01_01'); $org = value('SK01_01');
-put('SK02_01', ($org > 0) ? $org - : false);+put('SK02_01', ($org > 0) ? $org - : false);
 </code> </code>
  
Zeile 80: Zeile 104:
   $original = value(id('SK01', $item));   $original = value(id('SK01', $item));
   if ($original > 0) {   if ($original > 0) {
-    put(id('SK02', $item), $original - 5);+    put(id('SK02', $item), $original - 3);
   } else {   } else {
     put(id('SK02', $item), false);     put(id('SK02', $item), false);
Zeile 88: Zeile 112:
  
  
-===== Beispiel: Komplexer Filter =====+===== Komplexer Filter =====
  
 Das folgende Beispiel ist einem Fragebogen entnommen, der an mehreren Stellen unterschiedliche Fragen für Neukunden und Bestandskunden zeigt. Ein Neukunde zeichnet sich dadurch aus, dass er früher noch nichts gekauft hat (Antwort 1 bei Auswahlfrage "KD01") __und__ dass die aktuelle Bestellung noch nicht ausgeliefert wurde (Antwort 1 bis 3 bei Auswahlfrage "KD02"). Das folgende Beispiel ist einem Fragebogen entnommen, der an mehreren Stellen unterschiedliche Fragen für Neukunden und Bestandskunden zeigt. Ein Neukunde zeichnet sich dadurch aus, dass er früher noch nichts gekauft hat (Antwort 1 bei Auswahlfrage "KD01") __und__ dass die aktuelle Bestellung noch nicht ausgeliefert wurde (Antwort 1 bis 3 bei Auswahlfrage "KD02").
Zeile 114: Zeile 138:
  
  
-===== Beispiel: Randomisierung I =====+===== Randomisierung I =====
  
-Wenn Sie mittels ''shuffle()'' eine zufällig gemischte Liste erstellen, wird diese zunächst nicht gespeichert. Mittels ''put()'' lässt sie entweder die gemischte Liste -- oder die Rangfolge der Elemente speichern. Je nachdem, was für die Auswertung benötigt wird.+Wenn Sie mittels ''shuffle()'' eine zufällig gemischte Liste erstellen, wird diese zunächst nicht gespeichert. Mittels ''put()'' lässt sich entweder die gemischte Liste -- oder die Rangfolge der Elemente speichern. Je nachdem, was für die Auswertung benötigt wird.
  
 Folgender PHP-Code ordnet etwa die Wert von 1 bis 10 zufällig: Folgender PHP-Code ordnet etwa die Wert von 1 bis 10 zufällig:
Zeile 181: Zeile 205:
  
  
-===== Beispiel: Randomisierung II =====+===== Randomisierung II =====
  
 Falls Sie bei einer [[:de:create:randomization|Randomisierung]] mit dem Befehl ''[[:de:create:functions:random|random()]]'' arbeiten, müssen Sie die gewürftelte Zufallszahl im Datensatz abspeichern. Falls Sie bei einer [[:de:create:randomization|Randomisierung]] mit dem Befehl ''[[:de:create:functions:random|random()]]'' arbeiten, müssen Sie die gewürftelte Zufallszahl im Datensatz abspeichern.
de/create/functions/put.1545074517.txt.gz · Zuletzt geändert: 17.12.2018 20:21 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki