0 votes
in SoSci Survey (dt.) by s151788 (130 points)
edited by SoSci Survey

Hallo liebes Support Team,

in unserem Fragebogen müssen die Probanden eine Aufgabe mit 3 Fragen bearbeiten, pro richtiger Antwort erhalten die Probanden dann $0.50. Am Ende des Fragebogens erscheint auf einer Seite auch das entsprechende Feedback, z.B. wenn eine Frage richtig beantwortet wurde "You had one question correct! You won $0.50."
Da wir die Probanden entsprechend dieses Feedbacks bezahlen (je nach dem wie viele Fragen der Proband richtig hatte zwischen $0.50 und $1.50), wäre es gut, wenn wir das individuelle Feedback des Probandens (z.B. "You had one question correct! You won $0.50.") auch in dessen Datensatz speichern könnten, um so leichter / schneller zu sehen, welcher Proband wie viel $ erhält.
Unser Code für die Fragebogenseite mit dem individuelle Feedback sieht so aus:

if ((((value('R101') == 1) AND (value('R201') == 1)) OR ((value('R101') == 2) AND (value('R201') == 2))) AND 
(((value('R103') == 1) AND (value('R202') == 1)) OR ((value('R103') == 2) AND (value('R202') == 2))) AND
(((value('R105') == 1) AND (value('R203') == 1)) OR ((value('R105') == 2) AND (value('R203') == 2)))) {
  text('3correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 2)) OR ((value('R101') == 2) AND (value('R201') == 1))) AND 
(((value('R103') == 1) AND (value('R202') == 1)) OR ((value('R103') == 2) AND (value('R202') == 2))) AND
(((value('R105') == 1) AND (value('R203') == 1)) OR ((value('R105') == 2) AND (value('R203') == 2)))) {
  text('2correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 1)) OR ((value('R101') == 2) AND (value('R201') == 2))) AND 
(((value('R103') == 1) AND (value('R202') == 2)) OR ((value('R103') == 2) AND (value('R202') == 1))) AND
(((value('R105') == 1) AND (value('R203') == 1)) OR ((value('R105') == 2) AND (value('R203') == 2)))) {
  text('2correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 1)) OR ((value('R101') == 2) AND (value('R201') == 2))) AND 
(((value('R103') == 1) AND (value('R202') == 1)) OR ((value('R103') == 2) AND (value('R202') == 2))) AND
(((value('R105') == 1) AND (value('R203') == 2)) OR ((value('R105') == 2) AND (value('R203') == 1)))) {
  text('2correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 2)) OR ((value('R101') == 2) AND (value('R201') == 1))) AND 
(((value('R103') == 1) AND (value('R202') == 2)) OR ((value('R103') == 2) AND (value('R202') == 1))) AND
(((value('R105') == 1) AND (value('R203') == 1)) OR ((value('R105') == 2) AND (value('R203') == 2)))) {
  text('1correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 2)) OR ((value('R101') == 2) AND (value('R201') == 1))) AND 
(((value('R103') == 1) AND (value('R202') == 1)) OR ((value('R103') == 2) AND (value('R202') == 2))) AND
(((value('R105') == 1) AND (value('R203') == 2)) OR ((value('R105') == 2) AND (value('R203') == 1)))) {
  text('1correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 1)) OR ((value('R101') == 2) AND (value('R201') == 2))) AND 
(((value('R103') == 1) AND (value('R202') == 2)) OR ((value('R103') == 2) AND (value('R202') == 1))) AND
(((value('R105') == 1) AND (value('R203') == 2)) OR ((value('R105') == 2) AND (value('R203') == 1)))) {
  text('1correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 2)) OR ((value('R101') == 2) AND (value('R201') == 1))) AND 
(((value('R103') == 1) AND (value('R202') == 2)) OR ((value('R103') == 2) AND (value('R202') == 1))) AND
(((value('R105') == 1) AND (value('R203') == 2)) OR ((value('R105') == 2) AND (value('R203') == 1)))) {
  text('0correct');
}

Gibt es hier die Möglichkeit / einen Code, mit dem die dann zutreffende Option bzw. das entsprechende Feedback des Probanden (das ja im Fragebogen dann dem Probanden angezeigt wird) auch im Datensatz des Probanden zu speichern, sodass wir im Nachhinein sehen, welches Feedback bzw. wie viel Geld der Proband erhält?
Unser Ziel wäre dann z.B. bei Proband X, der 1 Frage richtig beantwortet hat, in dessen Datensatz bzw. der Excel Tabelle das Feedback "You had one question correct! You won $0.50." zu haben/ sehen zu können.

Vielen Dank vorab für Ihre Hilfe!

by s151788 (130 points)
Hallo liebes Support Team,

vielen Dank für den Hinweis bzgl. den personenbezogenen Daten.
Wir haben nachgeschaut und haben keine personenbezogenen Daten in unserem Fragebogen. Wir können keine personenbezogene Daten (wie z.B. E-Mail, Name etc.) bestimmten Personen zuordnen.

Viele Grüße.

1 Answer

0 votes
by SoSci Survey (305k points)

Mit der Funktion put() können Sie Werte im Datensatz ablegen: Interne Variablen

Sie könnten vermutlich die Anzahl der korrekten Optionen auch einfacher zählen:

$correct =
    (((value('R101') == 1) AND (value('R201') == 1)) OR ((value('R101') == 2) AND (value('R201') == 2))) +
    (((value('R103') == 1) AND (value('R202') == 1)) OR ((value('R103') == 2) AND (value('R202') == 2))) +
    (((value('R105') == 1) AND (value('R203') == 1)) OR ((value('R105') == 2) AND (value('R203') == 2)));

Dann müssen Sie nur noch prüfen, ob $correct den Wert 0, 1, 2 oder 3 hat.

Warnung: Personenbezogene Daten

Wenn Sie die Ergebnisse aus dem Fragebogen individuellen Personen zuordnen, dann haben Sie es mit personenbezogenen Daten nach DSGVO zu tun. Stellen Sie unbedingt sicher, dass Sie die dafür notwendigen gesetzlichen Auflagen erfüllen (das gilt auch für Forschungsprojekte) und dass www.soscisurvey.de nicht (!) für die Erhebung personenbezogener Daten geeignet ist, das ist nur auf dem Pro-Server s2survey.net zulässig.

by s151788 (130 points)
Danke für die schnelle Rückmeldung.
Ich habe eine Interne Variable (IV03_01) erstellt, der Code müsste dann ja
put ('IV03_01');
heißen oder? Und an welcher Stelle in unserem Code sollte ich den Code put ('IV03_01'); einfügen, damit das Feedback im Datensatz gespeichert wird?

Unser Code:

if ((((value('R101') == 1) AND (value('R201') == 1)) OR ((value('R101') == 2) AND (value('R201') == 2))) AND
(((value('R103') == 1) AND (value('R202') == 1)) OR ((value('R103') == 2) AND (value('R202') == 2))) AND
(((value('R105') == 1) AND (value('R203') == 1)) OR ((value('R105') == 2) AND (value('R203') == 2)))) {
  text('3correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 2)) OR ((value('R101') == 2) AND (value('R201') == 1))) AND
(((value('R103') == 1) AND (value('R202') == 1)) OR ((value('R103') == 2) AND (value('R202') == 2))) AND
(((value('R105') == 1) AND (value('R203') == 1)) OR ((value('R105') == 2) AND (value('R203') == 2)))) {
  text('2correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 1)) OR ((value('R101') == 2) AND (value('R201') == 2))) AND
(((value('R103') == 1) AND (value('R202') == 2)) OR ((value('R103') == 2) AND (value('R202') == 1))) AND
(((value('R105') == 1) AND (value('R203') == 1)) OR ((value('R105') == 2) AND (value('R203') == 2)))) {
  text('2correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 1)) OR ((value('R101') == 2) AND (value('R201') == 2))) AND
(((value('R103') == 1) AND (value('R202') == 1)) OR ((value('R103') == 2) AND (value('R202') == 2))) AND
(((value('R105') == 1) AND (value('R203') == 2)) OR ((value('R105') == 2) AND (value('R203') == 1)))) {
  text('2correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 2)) OR ((value('R101') == 2) AND (value('R201') == 1))) AND
(((value('R103') == 1) AND (value('R202') == 2)) OR ((value('R103') == 2) AND (value('R202') == 1))) AND
(((value('R105') == 1) AND (value('R203') == 1)) OR ((value('R105') == 2) AND (value('R203') == 2)))) {
  text('1correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 2)) OR ((value('R101') == 2) AND (value('R201') == 1))) AND
(((value('R103') == 1) AND (value('R202') == 1)) OR ((value('R103') == 2) AND (value('R202') == 2))) AND
(((value('R105') == 1) AND (value('R203') == 2)) OR ((value('R105') == 2) AND (value('R203') == 1)))) {
  text('1correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 1)) OR ((value('R101') == 2) AND (value('R201') == 2))) AND
(((value('R103') == 1) AND (value('R202') == 2)) OR ((value('R103') == 2) AND (value('R202') == 1))) AND
(((value('R105') == 1) AND (value('R203') == 2)) OR ((value('R105') == 2) AND (value('R203') == 1)))) {
  text('1correct');
}

elseif ((((value('R101') == 1) AND (value('R201') == 2)) OR ((value('R101') == 2) AND (value('R201') == 1))) AND
(((value('R103') == 1) AND (value('R202') == 2)) OR ((value('R103') == 2) AND (value('R202') == 1))) AND
(((value('R105') == 1) AND (value('R203') == 2)) OR ((value('R105') == 2) AND (value('R203') == 1)))) {
  text('0correct');
}

Danke im Voraus für Ihre Rückmeldung!
by SoSci Survey (305k points)
Bitte sehen Sie sich doch einmal die Anleitung zu put() an :)
by s151788 (130 points)
Das habe ich gemacht, ich habe eine Interne Variable (IV03_01) mit einem Item erstellt.
Den Code put('IV03_01'); habe ich ganz unten im Code eingefügt:

if ((((value('R102') == 1) AND (value('R201') == 1)) OR ((value('R102') == 2) AND (value('R201') == 2))) AND
(((value('R104') == 1) AND (value('R202') == 1)) OR ((value('R104') == 2) AND (value('R202') == 2))) AND
(((value('R106') == 1) AND (value('R203') == 1)) OR ((value('R106') == 2) AND (value('R203') == 2)))) {
  text('0correct');
}

elseif ((((value('R102') == 1) AND (value('R201') == 2)) OR ((value('R102') == 2) AND (value('R201') == 1))) AND
(((value('R104') == 1) AND (value('R202') == 1)) OR ((value('R104') == 2) AND (value('R202') == 2))) AND
(((value('R106') == 1) AND (value('R203') == 1)) OR ((value('R106') == 2) AND (value('R203') == 2)))) {
  text('1correct');
}

elseif ((((value('R102') == 1) AND (value('R201') == 1)) OR ((value('R102') == 2) AND (value('R201') == 2))) AND
(((value('R104') == 1) AND (value('R202') == 2)) OR ((value('R104') == 2) AND (value('R202') == 1))) AND
(((value('R106') == 1) AND (value('R203') == 1)) OR ((value('R106') == 2) AND (value('R203') == 2)))) {
  text('1correct');
}

elseif ((((value('R102') == 1) AND (value('R201') == 1)) OR ((value('R102') == 2) AND (value('R201') == 2))) AND
(((value('R104') == 1) AND (value('R202') == 1)) OR ((value('R104') == 2) AND (value('R202') == 2))) AND
(((value('R106') == 1) AND (value('R203') == 2)) OR ((value('R106') == 2) AND (value('R203') == 1)))) {
  text('1correct');
}

elseif ((((value('R102') == 1) AND (value('R201') == 2)) OR ((value('R102') == 2) AND (value('R201') == 1))) AND
(((value('R104') == 1) AND (value('R202') == 2)) OR ((value('R104') == 2) AND (value('R202') == 1))) AND
(((value('R106') == 1) AND (value('R203') == 1)) OR ((value('R106') == 2) AND (value('R203') == 2)))) {
  text('2correct');
}

elseif ((((value('R102') == 1) AND (value('R201') == 2)) OR ((value('R102') == 2) AND (value('R201') == 1))) AND
(((value('R104') == 1) AND (value('R202') == 1)) OR ((value('R104') == 2) AND (value('R202') == 2))) AND
(((value('R106') == 1) AND (value('R203') == 2)) OR ((value('R106') == 2) AND (value('R203') == 1)))) {
  text('2correct');
}

elseif ((((value('R102') == 1) AND (value('R201') == 1)) OR ((value('R102') == 2) AND (value('R201') == 2))) AND
(((value('R104') == 1) AND (value('R202') == 2)) OR ((value('R104') == 2) AND (value('R202') == 1))) AND
(((value('R106') == 1) AND (value('R203') == 2)) OR ((value('R106') == 2) AND (value('R203') == 1)))) {
  text('2correct');
}

elseif ((((value('R102') == 1) AND (value('R201') == 2)) OR ((value('R102') == 2) AND (value('R201') == 1))) AND
(((value('R104') == 1) AND (value('R202') == 2)) OR ((value('R104') == 2) AND (value('R202') == 1))) AND
(((value('R106') == 1) AND (value('R203') == 2)) OR ((value('R106') == 2) AND (value('R203') == 1)))) {
  text('3correct');
}

put('IV03_01');

allerdings wird das Feedback nicht im Datensatz gespeichert.... was mache ich falsch bzw. wie müsste es korrekt sein, dass das Feedback, das im Fragebogen angezeigt wird auch im Datensatz gespeichert wird?
by SoSci Survey (305k points)
Die Funktion put() erwartet zwei Parameter - die Kennung der internen Variable und als zweiten Parameter den Wert, den Sie speichern möchten.
by s151788 (130 points)
reshown by s151788
Danke für Ihre Rückmeldung!
Der Wert, den ich speichern möchte, soll ja das Feedback sein, welches dem Probanden im Fragebogen angezeigt wird (je nach dem wie viel korrekt beantwortete Fragen der entsprechende Text ('3correct', '2correct' etc.).
Was müsste ich dann als Wert in die put() Funktion eintragen?

Vielen Dank für Ihre Hilfe!
by SoSci Survey (305k points)
Nachdem Sie es ja über mehrere separate (komplexe) Bedingungen lösen möchten anstatt direkt zu zählen, werden Sie unter jedem text() auch ein put() brauchen. Also z.B.

  text('3correct');
  put('IV03_01', 3);

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...