Rebasing Questions Using a Condition
Jump to navigation
Jump to search
This script calls two other functions which will need to be included in order for this script to run: Copying Value Attributes for a Variable and Copying Value Attributes for a Question. Only the lines at the end need to be modified.
function rebaseQuestion(question_name, condition) {
var x = project.dataFiles[0].getQuestionByName(question_name);
var q_variables = x.variables;
var qt = x.questionType;
var is_text = qt == "Text" || qt == "Text - Multi"
var rebased_vars = [];
var last = q_variables[q_variables.length-1];
// For each variable, create the appropriate rebased variable.
for (var j=0;j<q_variables.length;j++) {
var expression = "if (" + condition + ") "+ q_variables[j].name.toString() + "; else NaN";
var rebased_var = project.dataFiles[0].newJavaScriptVariable(expression, is_text, q_variables[j].name.toString() + "rebased",q_variables[j].label.toString() , last);
rebased_vars.push(rebased_var);
last = rebased_var;
}
var new_question = project.dataFiles[0].setQuestion(x.name + " - rebased", qt, rebased_vars);
if (!is_text)
copyValueAttributesForQuestion(x, new_question );
project.dataFiles[0].moveAfter(x.variables,project.dataFiles[0].variables[project.dataFiles[0].variables.length-1]);
x.isHidden=true;
log("The question: \"" + x.name + "\" has been rebased using the condition " + condition + ".");
}
//This example filters a series of question based on rules relating to Q2 and Q3
// (the lines below should be modified to match your data)
rebaseQuestion("Q5. Brand associations","Q3 <= 4 && Q2 == 1")
rebaseQuestion("Q10. Why drinks more than one cola","Q3 <= 4 && Q2 == 1")
rebaseQuestion("Q11. Main difference between cola drinkers","Q3 <= 4 && Q2 == 1")
rebaseQuestion("Q6. Brand attitude (numeric -100 to 100)","Q3 <= 4 && Q2 == 1")
rebaseQuestion("Q1. Fragments coded","Q3 <= 4")
rebaseQuestion("Q2. Gender","Q3 <= 4 && Q2 == 1")
rebaseQuestion("Q3. Age","Q3 <= 4")
rebaseQuestion("Q4. Frequency of drinking","Q3 <= 4")
See also
- Filtering Variables for a version that filters each variable separately.
- QScript for an explanation of how to run this code.
- QScript Examples Library for other examples.
- QScript Reference for technical information.
- JavaScript for information about the JavaScript programming language.
- Table JavaScript and Plot JavaScript for tools for using JavaScript to modify the appearance of tables and charts.
- JavaScript Variables for detail on how to create new variables in the Variables and Questions tab using JavaScript.