﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 4  » mean latencies for correct/incorrect trials by trial type?</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Fri, 18 Sep 2026 17:23:04 GMT</lastBuildDate><ttl>20</ttl><item><title>mean latencies for correct/incorrect trials by trial type?</title><link>https://forums.millisecond.com/Topic20083.aspx</link><description>Hi,&lt;br/&gt;&lt;br/&gt;I have a task where people respond to types of stimuli (ex. happy trials, sad trials).&amp;nbsp; I want to be able to get the mean latencies for each trial type, but separately get the latencies for just the correct trials and for just he incorrect trials (so I'd end up with Happy_correctmeanlatency, Happy_incorrectmeanlatency, Sad_correctmeanlatency, Sad_incorrectmeanlatency, etc).&lt;br/&gt;&lt;br/&gt;I was thinking I could use /onblockend and some if statements to calculate the latencies for each, but I'm getting confused on exactly how to do it.&lt;br/&gt;&lt;br/&gt;Would it be...&lt;br/&gt;&lt;br/&gt;/onblockend =&lt;br/&gt;&amp;nbsp; [if (trial.Happy.correct == true)&lt;br/&gt;&amp;nbsp; values.Happy_correctmeanlatency = meanlatency(Happy)]&lt;br/&gt;/onblockend =&lt;br/&gt;&amp;nbsp; [if (trial.Happy.correct == false)&lt;br/&gt;&amp;nbsp; values.Happy_incorrectmeanlatency = meanlatency(Happy)]&lt;br/&gt;&lt;br/&gt;...and then repeat for other trial types in the block?&amp;nbsp; &lt;br/&gt;</description><pubDate>Thu, 10 Nov 2016 20:41:29 GMT</pubDate><dc:creator>knr</dc:creator></item><item><title>RE: mean latencies for correct/incorrect trials by trial type?</title><link>https://forums.millisecond.com/Topic20087.aspx</link><description>&lt;div data-id="20086" class="if-quote-wrapper" unselectable="on" data-guid="1478838904045"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="20086" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="20086" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="20086" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;knr - Thursday, November 10, 2016&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-20086"&gt;&lt;div class="if-quote-message-margin"&gt;&lt;div data-id="20084" class="if-quote-wrapper" unselectable="on" data-guid="1478838904045"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="20084" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="20084" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="20084" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - Thursday, November 10, 2016&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-20084"&gt;&lt;div class="if-quote-message-margin"&gt;&lt;div data-id="20083" class="if-quote-wrapper" unselectable="on" data-guid="1478838904045"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="20083" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="20083" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="20083" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;knr - Thursday, November 10, 2016&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-20083"&gt;&lt;div class="if-quote-message-margin"&gt;Hi,&lt;br/&gt;&lt;br/&gt;I have a task where people respond to types of stimuli (ex. happy trials, sad trials).&amp;nbsp; I want to be able to get the mean latencies for each trial type, but separately get the latencies for just the correct trials and for just he incorrect trials (so I'd end up with Happy_correctmeanlatency, Happy_incorrectmeanlatency, Sad_correctmeanlatency, Sad_incorrectmeanlatency, etc).&lt;br/&gt;&lt;br/&gt;I was thinking I could use /onblockend and some if statements to calculate the latencies for each, but I'm getting confused on exactly how to do it.&lt;br/&gt;&lt;br/&gt;Would it be...&lt;br/&gt;&lt;br/&gt;/onblockend =&lt;br/&gt;&amp;nbsp; [if (trial.Happy.correct == true)&lt;br/&gt;&amp;nbsp; values.Happy_correctmeanlatency = meanlatency(Happy)]&lt;br/&gt;/onblockend =&lt;br/&gt;&amp;nbsp; [if (trial.Happy.correct == false)&lt;br/&gt;&amp;nbsp; values.Happy_incorrectmeanlatency = meanlatency(Happy)]&lt;br/&gt;&lt;br/&gt;...and then repeat for other trial types in the block?&amp;nbsp; &lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="20083"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;No. You need two &amp;lt;values&amp;gt; entries per trial-type: One where you aggregate the sum of correct latencies, one where you count the number of correct responses. You need to update these values /ontrialend. You then calculate the mean via an &amp;lt;expression&amp;gt;, simply dividing the sum by the number of correct responses. &lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_sumlatency = 0&lt;br/&gt;/ b_sumlatency = 0&lt;br/&gt;/ a_ncorrect = 0&lt;br/&gt;/ b_ncorrect = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expressions&amp;gt;&lt;br/&gt;/ a_meanlat_correct = (values.a_sumlatency/values.a_ncorrect)&lt;br/&gt;/ b_meanlat_correct = (values.b_sumlatency/values.b_ncorrect)&lt;br/&gt;&amp;lt;/expressions&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ postinstructions = (performance)&lt;br/&gt;/ blocks = [1=myblock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myblock&amp;gt;&lt;br/&gt;/ trials = [1-10 = noreplace(a,b)]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a&amp;gt;&lt;br/&gt;/ ontrialend = [if (trial.a.correct) {values.a_sumlatency += trial.a.latency; values.a_ncorrect += 1}]&lt;br/&gt;/ stimulusframes = [1=atxt]&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b&amp;gt;&lt;br/&gt;/ ontrialend = [if (trial.b.correct) {values.b_sumlatency += trial.b.latency; values.b_ncorrect += 1}]&lt;br/&gt;/ stimulusframes = [1=btxt]&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text atxt&amp;gt;&lt;br/&gt;/ items = ("The correct response is A")&lt;br/&gt;/ txcolor = red&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text atxt&amp;gt;&lt;br/&gt;/ items = ("The correct response is B")&lt;br/&gt;/ txcolor = blue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = [date time subject group blocknum blockcode trialnum trialcode stimulusitem response latency correct values.a_ncorrect values.a_sumlatency values.b_ncorrect values.b_sumlatency expressions.a_meanlat_correct expressions.b_meanlat_correct]&lt;br/&gt;/ separatefiles = true&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="20084"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;Thanks, Dave.&amp;nbsp; This will give me the mean latencies for the various trial types for correct trials.&amp;nbsp; Is there a way to also get the latencies for the incorrect trials?&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="20086"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;Sure, you can aggregate those in the exact same way:&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_sumlatency_correct = 0&lt;br/&gt;/ b_sumlatency_correct = 0&lt;br/&gt;/ a_ncorrect = 0&lt;br/&gt;/ b_ncorrect = 0&lt;br/&gt;&lt;br/&gt;/ a_sumlatency_incorrect = 0&lt;br/&gt;/ b_sumlatency_incorrect = 0&lt;br/&gt;/ a_nincorrect = 0&lt;br/&gt;/ b_nincorrect = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expressions&amp;gt;&lt;br/&gt;/ a_meanlat_correct = (values.a_sumlatency_correct/values.a_ncorrect)&lt;br/&gt;/ b_meanlat_correct = (values.b_sumlatency_correct/values.b_ncorrect)&lt;br/&gt;&lt;br/&gt;/ a_meanlat_incorrect = (values.a_sumlatency_incorrect/values.a_nincorrect)&lt;br/&gt;/ b_meanlat_incorrect = (values.b_sumlatency_incorrect/values.b_nincorrect)&lt;br/&gt;&amp;lt;/expressions&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ postinstructions = (performance)&lt;br/&gt;/ blocks = [1=myblock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myblock&amp;gt;&lt;br/&gt;/ trials = [1-10 = noreplace(a,b)]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a&amp;gt;&lt;br/&gt;/ ontrialend = [if (trial.a.correct) {values.a_sumlatency_correct += trial.a.latency; values.a_ncorrect += 1}]&lt;br/&gt;/ ontrialend = [if (trial.a.error) {values.a_sumlatency_incorrect += trial.a.latency; values.a_nincorrect += 1}]&lt;br/&gt;/ stimulusframes = [1=atxt]&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b&amp;gt;&lt;br/&gt;/ ontrialend = [if (trial.b.correct) {values.b_sumlatency_correct += trial.b.latency; values.b_ncorrect += 1}]&lt;br/&gt;/ ontrialend = [if (trial.b.error) {values.b_sumlatency_incorrect += trial.b.latency; values.b_nincorrect += 1}]&lt;br/&gt;/ stimulusframes = [1=btxt]&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text atxt&amp;gt;&lt;br/&gt;/ items = ("The correct response is A")&lt;br/&gt;/ txcolor = red&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text atxt&amp;gt;&lt;br/&gt;/ items = ("The correct response is B")&lt;br/&gt;/ txcolor = blue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = [date time subject group blocknum blockcode trialnum trialcode stimulusitem response latency correct &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values.a_ncorrect values.a_sumlatency_correct values.a_nincorrect values.a_sumlatency_incorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values.b_ncorrect values.b_sumlatency_correct values.b_nincorrect values.b_sumlatency_incorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; expressions.a_meanlat_correct expressions.a_meanlat_incorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; expressions.b_meanlat_correct expressions.b_meanlat_incorrect]&lt;br/&gt;/ separatefiles = true&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;</description><pubDate>Thu, 10 Nov 2016 20:41:29 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: mean latencies for correct/incorrect trials by trial type?</title><link>https://forums.millisecond.com/Topic20086.aspx</link><description>&lt;div data-id="20084" class="if-quote-wrapper" unselectable="on" data-guid="1478835863864"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="20084" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="20084" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="20084" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - Thursday, November 10, 2016&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-20084"&gt;&lt;div class="if-quote-message-margin"&gt;&lt;div data-id="20083" class="if-quote-wrapper" unselectable="on" data-guid="1478835863864"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="20083" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="20083" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="20083" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;knr - Thursday, November 10, 2016&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-20083"&gt;&lt;div class="if-quote-message-margin"&gt;Hi,&lt;br/&gt;&lt;br/&gt;I have a task where people respond to types of stimuli (ex. happy trials, sad trials).&amp;nbsp; I want to be able to get the mean latencies for each trial type, but separately get the latencies for just the correct trials and for just he incorrect trials (so I'd end up with Happy_correctmeanlatency, Happy_incorrectmeanlatency, Sad_correctmeanlatency, Sad_incorrectmeanlatency, etc).&lt;br/&gt;&lt;br/&gt;I was thinking I could use /onblockend and some if statements to calculate the latencies for each, but I'm getting confused on exactly how to do it.&lt;br/&gt;&lt;br/&gt;Would it be...&lt;br/&gt;&lt;br/&gt;/onblockend =&lt;br/&gt;&amp;nbsp; [if (trial.Happy.correct == true)&lt;br/&gt;&amp;nbsp; values.Happy_correctmeanlatency = meanlatency(Happy)]&lt;br/&gt;/onblockend =&lt;br/&gt;&amp;nbsp; [if (trial.Happy.correct == false)&lt;br/&gt;&amp;nbsp; values.Happy_incorrectmeanlatency = meanlatency(Happy)]&lt;br/&gt;&lt;br/&gt;...and then repeat for other trial types in the block?&amp;nbsp; &lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="20083"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;No. You need two &amp;lt;values&amp;gt; entries per trial-type: One where you aggregate the sum of correct latencies, one where you count the number of correct responses. You need to update these values /ontrialend. You then calculate the mean via an &amp;lt;expression&amp;gt;, simply dividing the sum by the number of correct responses. &lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_sumlatency = 0&lt;br/&gt;/ b_sumlatency = 0&lt;br/&gt;/ a_ncorrect = 0&lt;br/&gt;/ b_ncorrect = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expressions&amp;gt;&lt;br/&gt;/ a_meanlat_correct = (values.a_sumlatency/values.a_ncorrect)&lt;br/&gt;/ b_meanlat_correct = (values.b_sumlatency/values.b_ncorrect)&lt;br/&gt;&amp;lt;/expressions&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ postinstructions = (performance)&lt;br/&gt;/ blocks = [1=myblock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myblock&amp;gt;&lt;br/&gt;/ trials = [1-10 = noreplace(a,b)]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a&amp;gt;&lt;br/&gt;/ ontrialend = [if (trial.a.correct) {values.a_sumlatency += trial.a.latency; values.a_ncorrect += 1}]&lt;br/&gt;/ stimulusframes = [1=atxt]&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b&amp;gt;&lt;br/&gt;/ ontrialend = [if (trial.b.correct) {values.b_sumlatency += trial.b.latency; values.b_ncorrect += 1}]&lt;br/&gt;/ stimulusframes = [1=btxt]&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text atxt&amp;gt;&lt;br/&gt;/ items = ("The correct response is A")&lt;br/&gt;/ txcolor = red&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text atxt&amp;gt;&lt;br/&gt;/ items = ("The correct response is B")&lt;br/&gt;/ txcolor = blue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = [date time subject group blocknum blockcode trialnum trialcode stimulusitem response latency correct values.a_ncorrect values.a_sumlatency values.b_ncorrect values.b_sumlatency expressions.a_meanlat_correct expressions.b_meanlat_correct]&lt;br/&gt;/ separatefiles = true&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="20084"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;Thanks, Dave.&amp;nbsp; This will give me the mean latencies for the various trial types for correct trials.&amp;nbsp; Is there a way to also get the latencies for the incorrect trials?&lt;br/&gt;</description><pubDate>Thu, 10 Nov 2016 19:48:49 GMT</pubDate><dc:creator>knr</dc:creator></item><item><title>RE: mean latencies for correct/incorrect trials by trial type?</title><link>https://forums.millisecond.com/Topic20084.aspx</link><description>&lt;div data-id="20083" class="if-quote-wrapper" unselectable="on" data-guid="1478807505506"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="20083" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="20083" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="20083" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;knr - Thursday, November 10, 2016&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-20083"&gt;&lt;div class="if-quote-message-margin"&gt;Hi,&lt;br/&gt;&lt;br/&gt;I have a task where people respond to types of stimuli (ex. happy trials, sad trials).&amp;nbsp; I want to be able to get the mean latencies for each trial type, but separately get the latencies for just the correct trials and for just he incorrect trials (so I'd end up with Happy_correctmeanlatency, Happy_incorrectmeanlatency, Sad_correctmeanlatency, Sad_incorrectmeanlatency, etc).&lt;br/&gt;&lt;br/&gt;I was thinking I could use /onblockend and some if statements to calculate the latencies for each, but I'm getting confused on exactly how to do it.&lt;br/&gt;&lt;br/&gt;Would it be...&lt;br/&gt;&lt;br/&gt;/onblockend =&lt;br/&gt;&amp;nbsp; [if (trial.Happy.correct == true)&lt;br/&gt;&amp;nbsp; values.Happy_correctmeanlatency = meanlatency(Happy)]&lt;br/&gt;/onblockend =&lt;br/&gt;&amp;nbsp; [if (trial.Happy.correct == false)&lt;br/&gt;&amp;nbsp; values.Happy_incorrectmeanlatency = meanlatency(Happy)]&lt;br/&gt;&lt;br/&gt;...and then repeat for other trial types in the block?&amp;nbsp; &lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="20083"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;No. You need two &amp;lt;values&amp;gt; entries per trial-type: One where you aggregate the sum of correct latencies, one where you count the number of correct responses. You need to update these values /ontrialend. You then calculate the mean via an &amp;lt;expression&amp;gt;, simply dividing the sum by the number of correct responses. &lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_sumlatency = 0&lt;br/&gt;/ b_sumlatency = 0&lt;br/&gt;/ a_ncorrect = 0&lt;br/&gt;/ b_ncorrect = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expressions&amp;gt;&lt;br/&gt;/ a_meanlat_correct = (values.a_sumlatency/values.a_ncorrect)&lt;br/&gt;/ b_meanlat_correct = (values.b_sumlatency/values.b_ncorrect)&lt;br/&gt;&amp;lt;/expressions&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ postinstructions = (performance)&lt;br/&gt;/ blocks = [1=myblock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myblock&amp;gt;&lt;br/&gt;/ trials = [1-10 = noreplace(a,b)]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a&amp;gt;&lt;br/&gt;/ ontrialend = [if (trial.a.correct) {values.a_sumlatency += trial.a.latency; values.a_ncorrect += 1}]&lt;br/&gt;/ stimulusframes = [1=atxt]&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b&amp;gt;&lt;br/&gt;/ ontrialend = [if (trial.b.correct) {values.b_sumlatency += trial.b.latency; values.b_ncorrect += 1}]&lt;br/&gt;/ stimulusframes = [1=btxt]&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text atxt&amp;gt;&lt;br/&gt;/ items = ("The correct response is A")&lt;br/&gt;/ txcolor = red&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text atxt&amp;gt;&lt;br/&gt;/ items = ("The correct response is B")&lt;br/&gt;/ txcolor = blue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = [date time subject group blocknum blockcode trialnum trialcode stimulusitem response latency correct values.a_ncorrect values.a_sumlatency values.b_ncorrect values.b_sumlatency expressions.a_meanlat_correct expressions.b_meanlat_correct]&lt;br/&gt;/ separatefiles = true&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;</description><pubDate>Thu, 10 Nov 2016 12:05:17 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>