Вопросы о проведении совместного эксперимента через QualtricsJavascript

Форум по Javascript
Ответить
Anonymous
 Вопросы о проведении совместного эксперимента через Qualtrics

Сообщение Anonymous »

В настоящее время я провожу совместный эксперимент через Qualtrics. В частности, в этом эксперименте, во -первых, в каждом блоке таблица совместной связи включает в себя три регулярные особенности: пол (уровни: женщина и мужчина), партия (уровни: DEM и Rep) и идеология (уровни: консервативные, либеральные и независимые) и одна из двух особенностей (случайно выбранные): аборт (уровни: поддержка, противоположные и нейтральные) и оружие (уровни: поддержка, противоположность и нейтрально). Во -вторых, в каждом блоке функции в совместной таблице случайным образом переупорядочиваются. Проблема сейчас в том, что вышеуказанные цели выполняются, экспортируемые данные не смогут захватить название функции «оружия», то есть, хотя элемент пистолет был выбран и показан ответчику, в экспортированных данных название этой функции все еще остается абортом. Ниже приведен JavaScript, который я использую. Любая помощь приветствуется. < /P>
javascript: < /p>
// Code to randomly generate conjoint profiles in a Qualtrics survey

// Terminology clarification:
// Task = Set of choices presented to respondent in a single screen (i.e. pair of candidates)
// Profile = Single list of attributes in a given task (i.e. candidate)
// Attribute = Category characterized by a set of levels (i.e. education level)
// Level = Value that an attribute can take in a particular choice task (i.e. "no formal education")

// Attributes and Levels stored in a 2-dimensional Array

/* Randomize array in-place using Durstenfeld shuffle algorithm */
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array;
array = array[j];
array[j] = temp;
}
return(array);
}

// Function to generate weighted random numbers
function weighted_randomize(prob_array, at_key)
{
var prob_list = prob_array[at_key];

// Create an array containing cutpoints for randomization
var cumul_prob = new Array(prob_list.length);
var cumulative = 0.0;
for (var i=0; i < prob_list.length; i++){
cumul_prob = cumulative;
cumulative = cumulative + parseFloat(prob_list);
}

// Generate a uniform random floating point value between 0.0 and 1.0
var unif_rand = Math.random();

// Figure out which integer should be returned
var outInt = 0;
for (var k = 0; k < cumul_prob.length; k++){
if (cumul_prob[k] 1){
for (var p = 1; p < constraints.length; p++){
if (featureArrayKeys.includes(constraints[p])){
var remkey = featureArrayKeys.indexOf(constraints[p]);
featureArrayKeys.splice(remkey, 1);
}
}
}
}
}

// Re-randomize the featurearray keys
featureArrayKeys = shuffleArray(featureArrayKeys);

// Re-insert the non-free attributes constrained by $attrconstraintarray
if (attrconstraintarray.length != 0){
for (const constraints of attrconstraintarray){
if (constraints.length > 1){
var insertloc = constraints[0];
if (featureArrayKeys.includes(insertloc)){
var insert_block = [];
for (var p = 1; p < constraints.length; p++){
insert_block.push(constraints[p]);
}
var begin_index = featureArrayKeys.indexOf(insertloc);
featureArrayKeys.splice(begin_index+1, 0, ...insert_block);
}
}
}
}

// Re-generate the new $featurearray - label it $featureArrayNew
var featureArrayNew = {};
for (var h = 0; h < featureArrayKeys.length; h++){
featureArrayNew[featureArrayKeys[h]] = featurearray[featureArrayKeys[h]];
}

// Initialize the array returned to the user
// Naming Convention
// Level Name: F-[task number]-[profile number]-[attribute number]
// Attribute Name: F-[task number]-[attribute number]
// Example: F-1-3-2, Returns the level corresponding to Task 1, Profile 3, Attribute 2
// F-3-3, Returns the attribute name corresponding to Task 3, Attribute 3

var returnarray = {};

// For each task $p
for(var p = 1; p

Подробнее здесь: https://stackoverflow.com/questions/795 ... -qualtrics
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»