PennController for IBEX › Forums › Support › Choosing subet of items to present › Reply To: Choosing subet of items to present
April 28, 2020 at 10:55 am
#5146
Keymaster
Just to double-check: your table defines 90 filler items whose ‘number’ label goes from 1 to 90, right?
When I test it I do get items whose number is over 45, but they indeed seem massively underrepresented. It seems to improve a bit when changing the > comparison when randomly sorting the indices for a >= comparison
Here’s my full script if you want to compare with yours:
PennController.ResetPrefix(null)
let myTable = "type,number,text\n"
for (let i = 0; i < 90; i++)
myTable += "filler,"+Number(i+1)+",textfiller"+i+"\ntest,"+Number(i+1)+",texttest"+i+"\n";
AddTable("myTable", myTable)
Sequence( randomize(anyOf(startsWith("test"),startsWith("filler"))) )
numberRows_fillers = 90;
numberDraws_fillers = 45;
randomIDs_fillers = [...new Array(numberRows_fillers)].map((v,i)=>i).sort(v=>Math.random()>=0.5).splice(1,numberDraws_fillers);
Template( GetTable("myTable").filter( r => r.type=="filler" && randomIDs_fillers.indexOf(Number(r.number))>-1 ),
row => newTrial( "filler-"+row.number , newText("filler").print(),newButton(row.text).print().wait() )
)
Template( GetTable("myTable").filter( r => r.type=="test" && randomIDs_fillers.indexOf(Number(r.number))>-1 ),
row => newTrial( "test-"+row.number , newText("test").print(),newButton(row.text).print().wait() )
)
Jeremy