Wertezuweisungen Funktionsreferenz

Diese Seite ist eine Erweiterung der Seite Wertzuweisungen, wenn Sie mit Wertzuweisungen noch nicht vertraut sind, lesen Sie bitte hier.

Disclaimer: Mit einer Professional Nutzerlizenz können Sie alle Funktionen, die auf dieser Seite beschrieben sind, verwenden. Jedoch benötigen Sie eine erweiterte Support-Vereinbarung (SLA – Service Level Agreement), wenn Sie unsere Hilfe bei der Umsetzung in Anspruch nehmen wollen. Komplexe Wertezuweisungen für den wissenschaftlichen Gebrauch sind vom Survalyzer Produkt-Support ausgeschlossen. Kontaktieren Sie unser Sales Team bezüglich eines SLA.

Math.js Funktionen

Die Grundlage des Wertezuweisungen-Elements ist math.js. Es gibt dort fertige Funktionen, die in den Wertezuweisungen genutzt werden können. Sollten Sie in der nachfolgenden Auflistung eine Funktion vermissen, können Sie für weitere Funktionen die math.js Funktionsreferenz durchsuchen: https://mathjs.org/docs/reference/functions.html

Arithmetik

FunktionBeschreibungBeispielErgebnis
+addiert Zahlenwertesum=3+25
subtrahiert Zahlenwertedifference=3-21
*multipliziert Zahlenwerteproduct=3*26
/dividiert Zahlenwertequotient=3/21.5
%berechnet den Modulo (Restwert bei einer Division)modulus=3%21
^potenziert Zahlenwertesquare=3^29
sqrtberechnet die Quadratwurzelresult=sqrt(9)3
absberechnet den absoluten Betragresult1=abs(-5)
result2=abs(5)
5
5
roundrundet auf Dezimalstelleresult=round(2.35,1)2.4

Statistik

JSON File der Statistik Referenz Umfrage herunterladen und in Ihren Workspace importieren.

FunktionBeschreibungBeispielErgebnis
sumberechnet die Summesum(2,3,5)10
meanberechnet das Arithmetische Mittelmean(2,3,5)3.3333…
medianberechnet den Medianmedian(2,3,5)3
stdberechnet die Standardabweichungstd(2,3,5)1.5275…
varianceberechnet die Varianzvariance(2,3,5)2.3333…
minermittelt den kleinsten Wertmin(2,3,5)2
maxermittelt den grössten Wertmax(2,3,5)5

Randomisierung

JSON File der Randomisierung Referenz Umfrage herunterladen und in Ihren Workspace importieren.

FunktionBeschreibungBeispielUmfrage Referenz
randomliefert eine Bruchzahl zwischen min (inklusive) und max (exklusive)random(min,max)
randomIntliefert eine Ganze Zahl zwischen min (inklusive) und max (exklusive)randomInt(min,max)Section 2 der Randomisierung Umfrage
pickRandomliefert ein zufällig ausgewähltes Element aus einer vorgegebenen ListepickRandom([var1,var2,var3])Section 1 der Randomisierung Umfrage
shufflemischt die Werte einer Matrixshuffle([var1,var2,var3])
shuffleChoicesWithinBlocksortiert zufällig die Antwortoptionen innerhalb festgelegter BereicheshuffleChoicesWithinBlock("q1",[1,2,3],[4],[5,6])
shuffleChoicesByBlocksortiert zufällig die festgelegten Bereiche der AntwortoptionenshuffleChoicesByBlock("q1",[1,2,3],[4],[5,6])

Bedingte Anweisungen (if-then-else)

Die grundlegende Syntax einer bedingten Anweisung lautet:
WENN Bedingung ? DANN Aktion : SONST Aktion
– das Fragezeichen und der Doppelpunkt sind erforderlich
– es kann nur eine DANN Aktion und eine SONST Aktion definiert werden
– falls keine Aktion definiert wird, ist das Wort null zu verwenden
– die Bedingung kann die Logik-Operatoren and und or sowie Klammern enthalten
– zwei oder mehr bedingte Anweisungen können verschachtelt werden (entspricht elseif)

BeispielBeschreibungEingabeAusgabe
q1==1 ? var1=1 : nullwenn die Fragevariable q1 den Wert 1 hat (z.B. die erste Antwort einer Einfachauswahl wurde ausgewählt), dann wird der benutzerdefinierten Variable var1 der Wert 1 zugewiesen, sonst passiert nichtsq1=1
q1=2
var1=1
var1=var1
q2>1 ? var2=1 : var2=0wenn die Fragevariable q2 einen Wert grösser als 1 hat, dann wird der benutzerdefinierten Variable var2 der Wert 1 zugewiesen, sonst wird der benutzerdefinierten Variable var2 der Wert 0 zugewiesenq2=1
q2=2
q2=3
var2=0
var2=1
var2=1
age>=18 and age<=65 ? counter=counter+1 : nullwenn die Fragevariable age einen Wert zwischen 18 und 65 hat, dann wird die benutzerdefinierte Variable counter um 1 erhöht, sonst passiert nichtsage=15
age=45
age=75
counter=counter
counter=counter+1
counter=counter
(zip>=1000 and zip<=1007) or (zip>=1010 and zip<=1019) ? town="Lausanne" : nullwenn die Variable zip zwischen 1000 und 1007 oder zwischen 1010 und 1019 liegt, dann wird der Variable town “Lausanne” zugewiesen, sonst passiert nichtszip=1008
zip=1018
zip=8005
town=town
town=”Lausanne”
town=town
equals(email1,email2)==true ? mailcheck=1 : mailcheck=0wenn beide Texteinträge von email1 und email2 gleich sind, dann wird mailcheck 1 zugewiesen, sonst wird mailcheck 0 zugewiesenemail1=”a@bc.de”
email2=”a@bc.de”

email1=”a@bc.de”
email2=”k@lm.no”
mailcheck=1


mailcheck=0
age<18 ? group=1 : age<30 ? group=2 : age<50 ? group=3 : age<=65 ? group=4 : group=5verschachtelte bedingte Anweisungen: wenn age<18 dann group=1 sonst wenn age<30 dann group=2 sonst wenn age<50 dann group=3 sonst wenn age<=65 dann group=4 sonst group=5age=5
age=25
age=45
age=65
age=85
group=1
group=2
group=3
group=4
group=5

Texte

JSON File der Texte Referenz Umfrage herunterladen und in Ihren Workspace importieren.

FunktionBeschreibungBeispielErgebnis
concatverkettet Texteconcat("8005"," ","Zürich")“8005 Zürich”
equalsvergleicht Texte and liefert entweder “true” oder “false” zurückequals("8005","Zürich")false
countzählt die Anzahl Zeichen eines Textescount("8005 Zürich")11
[start:stop]liefert einen Textteil, beginnend bei “start” und endend bei “stop” (Nummer des Zeichens)"8005 Zürich"[1:4]“8005”
indexOfermittelt die Startposition eines Suchtextes (Achtung: das erste Zeichen ist Position 0)indexOf("8005 Zürich","Zürich")
indexOf("8005 Zürich","Utrecht")
5

-1
subsetersetzt Zeichen an festgelegter Positionsubset("8000 Zurich",index(4:7),"5 Zü")“8005 Zürich”

Datum & Uhrzeit

JSON File der Datentransformation Referenz Umfrage herunterladen und in Ihren Workspace importieren.

FunktionBeschreibungBeispielUmfrage Referenz
datewandelt einen Text (Variable) in ein Datum (Variable) umdate("13.02.2024")
number2datewandelt einen Unix-Zeitstempel in ein Datum umnumber2date(varTimestamp)
dateFormatformatiert ein Datum (inkl. Uhrzeit) nach vorgegebenem Schema (Datentyp Text)dateFormat(varDate, "DD.MM.YYYY HH:mm:ss")
date2numberliefert den Unix-Zeitstempel (Anzahl Millisekunden) für ein vorgegebenes Datumdate2number(varDate)Section 1 der Datentransformation Umfrage
datetime2numberliefert den Unix-Zeitstempel (Anzahl Millisekunden) für eine vorgegebene Zeit (inkl. Datum)datetime2number(varDateTime)
todayliefert das aktuelle Datum und die aktuelle Uhrzeit (Datentyp Datum)today()Section 1 der Datentransformation Umfrage
addDaysaddiert angegebene Anzahl Tage zu einem vorgegebenen Datum (Datentyp Datum)addDays(today(),-7)
getRunTimeInSecliefert die Anzahl Sekunden seit dem Starten des InterviewsgetRunTimeInSec()

Datentransformation

JSON File der Datentransformation Referenz Umfrage herunterladen und in Ihren Workspace importieren.

FunktionBeschreibungBeispielUmfrage Referenz
parseNumberliefert Ganze Zahl aus einem TextparseNumber(varText)Section 2 der Datentransformation Umfrage
parseRealliefert Bruchzahl aus einem TextparseReal(varText)
convertToStringkonvertiert eine vorgegebene Zahl in TextconvertToString(varNumber)Section 2 der Datentransformation Umfrage
binliefert den Binärzahlwert einer Zahl (Datentyp Text)bin(varNumber)
hexliefert den Hexadezimalzahlwert einer Zahl (Datentyp Text)hex(varNumber)
toJSONkonvertiert einen JSON-Text in eine JSON-VariabletoJSON(varText)

Zähler

JSON File der Zähler Referenz Umfrage herunterladen und in Ihren Workspace importieren.

FunktionBeschreibungBeispielUmfrage Referenz
count_startedermittelt die Anzahl Interviews mit Status “InProgress”survey.count_startedSection 2a der Randomisierung Umfrage
count_completedermittelt die Anzahl Interviews mit Status “Completed”survey.count_completedSection 2a der Randomisierung Umfrage
countInterviewsermittelt die Anzahl Interviews, die die definierte Bedingung erfüllencountInterviews(customCondition)

Beispiel für eine customCondition:
countInterviews(q1==1 and survey.State=='Completed')
Section 1 der Zähler Umfrage
getCountQuestiongibt die Anzahl Fragen in der gesamten Umfrage zurückgetCountQuestion()
getCountVariablegibt die Anzahl Variablen in der gesamten Umfrage zurückgetCountVariable()

Array & Matrix

JSON File der matrixto Reference Umfrage herunterladen und in Ihren Workspace importieren.

FunktionBeschreibungBeispielErgebnis
csvToNumberArraykonvertiert einen CSV-Text in ein Zahlen-Array (Datentyp Matrix)csvToNumberArray('34,34,123,43')[34,34,123,43]
csvToStringArraykonvertiert einen CSV-Text in ein Text-Array (Datentyp Matrix)csvToStringArray('34, 34, 123 , 43')[“34″,”34″,”123″,”43”]
[dim1,dim2]liefert das Element einer Matrix an der Position “dim1” und “dim2”varMatrix=[[1,2,3],[3,4,5],[5,6,7],[7,8,9]]
varMatrix[2,3]
5
matrixToFlatArrayliefert eine eindimensionale Matrix (=Array) aus einer multidimensionalen MatrixvarMatrix=[[1,2,3],[3,4,5],[5,6,7],[7,8,9]]
matrixToFlatArray(varMatrix[1:end,2])
[2,4,6,8]
mapbildet jedes Element einer Matrix gemäss einer selbst definierten Funktion abvarMatrix=[2,4,6,8]
Funktion die 2 oder 6 mit 0 ersetzt:
myFunction(value)= value==2 or value==6 ? 0 : value
nach der Funktion notieren:
map(varMatrix,myFunction)
[0,4,0,8]
sortsortiert ein ArrayvarMatrix=[0,4,0,8]
sort(varMatrix,'asc')
[0,0,4,8]
filterfiltert ein Array gemäss einer selbst definierten FunktionvarMatrix=[0,0,4,8]
Funktion die alle NULL Missings und alle Werte 0 wegfiltert:
myFunction(value)= value!=null and value!=0
nach der Funktion notieren:
filter(varMatrix,myFunction)
[4,8]
countermittelt die Anzahl an Elementen eines ArrayvarMatrix=[4,8]
count(varMatrix)
2
meanberechnet den Mittelwert der Elemente eines ArrayvarMatrix=[4,8]
mean(varMatrix)
6
resizeändert (verkleinert oder erweitert) die Grösse einer Matrix oder eines ArraysvarMatrix=[4,8]
varMatrix.resize([1])
varMatrix.resize([5])
varMatrix.resize([5],2)

[4]
[4,8,0,0,0]
[4,8,2,2,2]
matrixToHtmlgeneriert HTML Tabellen-Code von einer Matrix-Variable; Wiedergabe via Platzhalter in einer Umfrage ist eine TabellematrixToHtml(varMatrix)
oder mit formatierter Kopfzeile
matrixToHtml(varMatrix,{firstRowAsHeader:true})
dataSourceToMatrixnimmt die Ergebnisse von einer Datasource innerhalb eines Reports und schreibt sie in eine Matrix-VariabledataSourceToMatrix(reportID,datasourceID)

Mapping, Filtern und foreach-Schleifen mit benutzerdefinierten Funktionen

Math.js verfügt über eine Funktion namens map, die ein neues Array oder eine neue Matrix aus einem gegebenen Array oder einer gegebenen Matrix auf der Grundlage einer Callback-Funktion erstellt. Man kann diese Funktion als foreach-Schleife verwenden, wie unten beschrieben.
Lesen Sie mehr über die map-Funktion in der math.js-Dokumentation.
Man kann jede beliebige Callback-Funktion definieren – nennen wir sie also benutzerdefinierte Funktionen. Stellen Sie sicher, dass die benutzerdefinierte Funktion definiert ist, bevor Sie die map-Funktion aufrufen.
Neben der map-Funktion gibt es auch eine Filterfunktion, die im Grunde die gleiche Logik verwendet. Im Gegensatz zum Mapping werden beim Filtern bestimmte Elemente gemäss der benutzerdefinierten Funktion beibehalten und die anderen entfernt.
Wenn man stattdessen eine Schleife verwenden möchten, die nicht die verwendete Matrix oder das verwendete Array ändert, kann man mit der foreach-Funktion arbeiten. Man benötigt immer noch eine Matrix oder ein Array, um alle Elemente in einer Schleife zu durchlaufen, aber man kann zunächst ein diesbezügliches Hilfsarray mit z.B. Aufzählungswerten erstellen.

BeispielBeschreibungEingabeAusgabe
myFunction(x) = x*x

myResult=map(myArray,myFunction)
die benutzerdefinierte Funktion myFunction quadriert jeden angegebenen Wert; die map-Funktion übergibt myArray an myFunction, um das neue Array myResult mit den Quadraten für jedes Element von myArray zu erstellenmyArray=[1,2,3]myResult=[1,4,9]
myFilter(x) = x!=null and x!=0

myResult=filter(myArray,myFilter)
die benutzerdefinierte Funktion myFilter prüft für jeden angegebenen Wert, ob er nicht null und nicht 0 ist; die Filterfunktion übergibt myArray an myFilter, um leere und 0-Werte herauszufiltern und alle anderen Werte im neuen Array myResult beizubehaltenmyArray=[0,1,2,3,null]myResult=[1,2,3]
myFunction(x) = equals(q1,getFrom(x,'zip')) ? getFrom(x,'town') : null

myArray=matrixToFlatArray(ziptownlist)
myResult=map(myArray,myFunction)

nullFilter(x) = x!=null

myTown=filter(myResult,nullFilter)[1]
myFunction ist eine Nachschlagefunktion, die die ziptownlist (JSON in ein eindimensionales Array konvertiert) in einer Schleife durchläuft und alle Listenwerte mit der Antwort von q1 vergleicht; myResult behält den überein­stimmenden Wert und myTown gibt das einzige verbleibende Element nach Anwendung des nullFilter zurückq1=”8000″

ziptownlist=[
{“zip”:”1000″, “town”:”Lausanne”},
{“zip”:”1200″, “town”:”Genève”},
{“zip”:”3000″, “town”:”Bern”},
{“zip”:”4000″, “town”:”Basel”},
{“zip”:”8000″, “town”:”Zürich”}]
myResult=[null,null,null,null,”Zürich”]

myTown=”Zürich”
auxiliaryArray=range(1,20)

myFunction(x) = sum=sum+x

sum=0
foreach(auxiliaryArray,myFunction)
auxiliaryArray ist so erstellt, dass es 20 Elemente von 1 bis 20 enthält; myFunction summiert die Zahlen 1 bis 20 mit Hilfe einer foreach-Schleifesum=210

Umfrageelemente Steuerung

JSON File der Steuerung Referenz Umfrage herunterladen und in Ihren Workspace importieren.

FunktionBeschreibungBeispielUmfrage Referenz
setSurveyFieldsReadOnlysetzt Textfelder oder Multiple Choice Checkboxen in den Nur-Lesen-Modus (Readyonly)setSurveyFieldsReadOnly([Variablename])
setSurveyFieldsEditablemacht den Nur-Lesen-Modus wieder rückgängigsetSurveyFieldsEditable([Variablename])
setSectionOrderlegt die Anzeige-Reihenfolge der nächsten Abschnitte festsetSectionOrder(["Section C","Section A","Section B"])
hide (back button)versteckt den Zurück-ButtonBackButton("hide")Section 2 der Steuerung Umfrage
hide (next button)versteckt den Weiter-Button für eine festgelegte Anzahl SekundenNextButton("hide",5)Section 1 der Steuerung Umfrage
click (next button)automatisches Auslösen des Weiter-Button nach einer festgelegten Anzahl SekundenNextButton("click",5)Section 1 der Steuerung Umfrage
hideandclick (next button)versteckt den Weiter-Button für eine festgelegte Anzahl Sekunden und löst ihn dann automatisch ausNextButton("hideandclick",5)Section 1 der Steuerung Umfrage

Spezielle Funktionen

JSON File der Benutzerfunktionen and Wenn-Dann-Sonst Referenz Umfrage herunterladen und in Ihren Workspace importieren.

FunktionBeschreibungBeispielUmfrage Referenz
isNullOrUndefined
isNull
isUndefined
in Bedingungen einsetzbar, um zu prüfen, ob eine Variable leer oder nicht definiert istisNullOrUndefined(varText)
isNull(varText)
isUndefined(varText)
Benutzerfunktionen und Wenn-Dann-Sonst Referenz Umfrage
list functionversteckt nicht-ausgewählte Antworten einer Liste in Folgefragenlist(choice) = answer(concat('brand_',choice.code)) == 1 ? true : false
setChoicesVisibility('bestbrand',list)
JSON File der Listenfunktion Referenz Umfrage
getSurveyLinkgeneriert einen individuellen Link für eine bestimmte Umfragelink=getSurveyLink(123)JSON File der Umfragelink Referenz Umfrage
returngibt den Wert einer bestimmten Variablen als Endergebnis der Wertezuweisung zurückreturn(var)
FunktionBeschreibungBeispielErgebnis
getFromgibt den Inhalt einer JSON Variable (bis zu 2 Verzweigungen) zurück; auf die unterschiedliche Nummerierung achtenvarJson = [
{"id":"1","name":"one"},
{"id":"2","name":"two"}
]


getFrom(varJson,'[1]')
getFrom(varJson,'[1].name')
getFrom(varJson[1],'name')






{“id”:”2″,”name”:”two”}
two
one
Updated on April 12, 2024

Article Attachments

Was this article helpful?

Related Articles

Need Support?
Please login to your Survalyzer account and use the "Create Support Request" form.
Login to Survalyzer