在 Qualtrics-SOS 中实施数学运算
Implementing math operations in Qualtrics- SOS
我是 Qualtrics/JavaScript 的新手...非常感谢对
的帮助
Var block1= [parseInt("${q://QID664/SelectedAnswerRecode/1}"), parseInt("${q://QID664/SelectedAnswerRecode/2}"), parseInt("${q://QID664/SelectedAnswerRecode/3}"), parseInt("${q://QID664/SelectedAnswerRecode/4}"), parseInt("${q://QID664/SelectedAnswerRecode/5}"), parseInt("${q://QID664/SelectedAnswerRecode/6}"), parseInt("${q://QID664/SelectedAnswerRecode/7}"), parseInt("${q://QID664/SelectedAnswerRecode/8}"), parseInt("${q://QID664/SelectedAnswerRecode/9}"), parseInt("${q://QID664/SelectedAnswerRecode/10}")];
`for(i=0;i<block1.length;i++) {
`diff_array[i]= block1[i+1]- block1[i]}`
接下来,我要执行以下操作:
- 在数组中查找
num_switch_block1= number of ones in difference array)
-创建 lambda 变量-
lambda_multiplier= [.7, .9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.3]
是否有更优雅的方法来递增该数组?我应该将其设置为嵌入式数据吗? - 将差异数组乘以 lambda_multiplier
`var mult = multiply(diff_array,lambda_multiplier);`
-然后将这个数组减少到只有非零值
mult.filter (Boolean)
我用对了吗functions/doing这个对吗?
不确定您将如何处理数组 mult,但这里是创建它的代码(未经测试):
var block1= [parseInt("${q://QID664/SelectedAnswerRecode/1}"),
parseInt("${q://QID664/SelectedAnswerRecode/2}"),
parseInt("${q://QID664/SelectedAnswerRecode/3}"),
parseInt("${q://QID664/SelectedAnswerRecode/4}"),
parseInt("${q://QID664/SelectedAnswerRecode/5}"),
parseInt("${q://QID664/SelectedAnswerRecode/6}"),
parseInt("${q://QID664/SelectedAnswerRecode/7}"),
parseInt("${q://QID664/SelectedAnswerRecode/8}"),
parseInt("${q://QID664/SelectedAnswerRecode/9}"),
parseInt("${q://QID664/SelectedAnswerRecode/10}")];
var lambda_multiplier = [.7, .9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.3];
var mult = [];
for(i=0;i<lambda_multiplier.length;i++) {
mult[i] = (block1[i+1] - block1[i]) * lambda_multiplier[i];
}
mult = mult.filter(Number); //remove 0s from mult
我是 Qualtrics/JavaScript 的新手...非常感谢对
的帮助Var block1= [parseInt("${q://QID664/SelectedAnswerRecode/1}"), parseInt("${q://QID664/SelectedAnswerRecode/2}"), parseInt("${q://QID664/SelectedAnswerRecode/3}"), parseInt("${q://QID664/SelectedAnswerRecode/4}"), parseInt("${q://QID664/SelectedAnswerRecode/5}"), parseInt("${q://QID664/SelectedAnswerRecode/6}"), parseInt("${q://QID664/SelectedAnswerRecode/7}"), parseInt("${q://QID664/SelectedAnswerRecode/8}"), parseInt("${q://QID664/SelectedAnswerRecode/9}"), parseInt("${q://QID664/SelectedAnswerRecode/10}")];
`for(i=0;i<block1.length;i++) {
`diff_array[i]= block1[i+1]- block1[i]}`
接下来,我要执行以下操作:
- 在数组中查找
num_switch_block1= number of ones in difference array)
-创建 lambda 变量-
lambda_multiplier= [.7, .9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.3]
是否有更优雅的方法来递增该数组?我应该将其设置为嵌入式数据吗? - 将差异数组乘以 lambda_multiplier
`var mult = multiply(diff_array,lambda_multiplier);`
-然后将这个数组减少到只有非零值
mult.filter (Boolean)
我用对了吗functions/doing这个对吗?
不确定您将如何处理数组 mult,但这里是创建它的代码(未经测试):
var block1= [parseInt("${q://QID664/SelectedAnswerRecode/1}"),
parseInt("${q://QID664/SelectedAnswerRecode/2}"),
parseInt("${q://QID664/SelectedAnswerRecode/3}"),
parseInt("${q://QID664/SelectedAnswerRecode/4}"),
parseInt("${q://QID664/SelectedAnswerRecode/5}"),
parseInt("${q://QID664/SelectedAnswerRecode/6}"),
parseInt("${q://QID664/SelectedAnswerRecode/7}"),
parseInt("${q://QID664/SelectedAnswerRecode/8}"),
parseInt("${q://QID664/SelectedAnswerRecode/9}"),
parseInt("${q://QID664/SelectedAnswerRecode/10}")];
var lambda_multiplier = [.7, .9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.3];
var mult = [];
for(i=0;i<lambda_multiplier.length;i++) {
mult[i] = (block1[i+1] - block1[i]) * lambda_multiplier[i];
}
mult = mult.filter(Number); //remove 0s from mult