我做了一个实验,受试者(n = 14)必须在键盘上对屏幕上显示的刺激做出反应。他们可能会因在两种不同情况下的错误响应而受到罚款->在以下情况中,这两个条件分别称为“罚则4”和“罚则14”。我在其他变量中测量了任务中这些主题的决策时间(DT)。 所有数据都存在于名为“ OutputTable_Online”的表中。这是OutputTable_Online的外观(顶部): OutputTable_Online(底部):
我要做的是将每个“ Subjectnbr”和每个“ Penalty”的变量“ ampl_RFDI_sb”,“ ampl_RAPB_sb”,“ ampl_RADM_sb”平均化为“ StimType”的函数。如上图所示,我需要的所有信息都在OutputTable_Online中。这是我用于此的代码:
Melt_OutputTable_Online <- melt(OutputTable_Online,
id.var = c('Subjectnbr', 'Penalty','Trial_Nbr',
'StimType'), measure.var = c('ampl_RFDI_sb', 'ampl_RAPB_sb', 'ampl_RADM_sb',
'ampl_LFDI_sb', 'ampl_LAPB_sb', 'ampl_LADM_sb', 'ampl_RFDI_ss',
'ampl_RAPB_ss', 'ampl_RADM_ss', 'ampl_LFDI_ss', 'ampl_LAPB_ss',
'ampl_LADM_ss', 'ampl_RFDI_sm', 'ampl_RAPB_sm', 'ampl_RADM_sm',
'ampl_LFDI_sm', 'ampl_LAPB_sm', 'ampl_LADM_sm', 'ampl_RFDI_sl',
'ampl_RAPB_sl', 'ampl_RADM_sl', 'ampl_LFDI_sl', 'ampl_LAPB_sl',
'ampl_LADM_sl'))
Cast_Melt_OutputTable_Online <- cast(Melt_OutputTable_Online,
Subjectnbr * Penalty ~ StimType * variable, mean)
以下是此过程的输出:
但是,正如预期的那样,当受检者等待更长的时间做出响应时(惩罚更为谨慎),当惩罚为14时,DT分布会向右移动。因此,罚分14中的平均DT比罚分4中的更长。
此处的数字表示惩罚4(黑色)和惩罚14(绿色)的组级别密度分布;垂直线代表组级别的平均值。这是我用来绘制此代码的代码:
OutputTable_Online_DT <- ddply(OutputTable_Online, "Penalty", summarise,
grp.mean=mean(DT))
Density_OutputTable_Online <- ggplot(OutputTable_Online, aes(x = DT,
fill=Penalty))
Density_OutputTable_Online <- Density_OutputTable_Online +
geom_density(aes(y = ..count.., group=Penalty), alpha=0.2)+
geom_vline(data=OutputTable_Online_DT,aes(xintercept=grp.mean,
color=Penalty),linetype="dashed", size=1)+ ggtitle("Density distributions
for both penalty conditions") + scale_color_manual(labels = c("P4", "P14"),
values = c("black", "green"))+ scale_fill_manual(labels = c("P4", "P14"),
values = c("black", "green"))+ labs(x = "DT (ms)", y = "Density of trials
(a.u.)")+ coord_cartesian(ylim=c(0, 3.5), xlim=c(0, 3000))
Density_OutputTable_Online
这是我的问题:如上所述,当我对变量“ ampl_RFDI_sb”,“ ampl_RAPB_sb”,“ ampl_RADM_sb”等进行求平均值时,所得平均值实际上取决于DT(即DT在2个处罚条件)。我想摆脱这个令人困惑的因素。为此,**我想在每个受试者的两个惩罚条件下均化平均DT。我当时想,这样做的一种方法是在每个受试者中选择上面重叠的部分分布(即绿色分配区与黑色分配区重叠)的试验。换句话说,在对变量“ ampl_RFDI_sb”,“ ampl_RAPB_sb”,“ ampl_RADM_sb”等执行平均过程之前,绘制DT的密度分布时,我希望在OutputTable_Online中的每个惩罚条件下具有相同的试验分布。< / p>
一种执行此操作的方法是使每个DT箱中的“罚分4”和“罚分14”条件下的数字试验相等。但是,我不知道如何根据如上所述的OutputTable_Online中的数据执行此操作。**
任何提示都会很受欢迎。
预先感谢您的帮助,
杰拉德
答案 0 :(得分:0)
为了能够在上述两个惩罚条件下获得相同的DT,我根据DT的bin(使用子集函数)对表进行了子集化,并根据条件对每个bin均化了每种条件下的试验次数试验次数最少的为此,我使用了“样本”功能。我使用for循环对表的每个主题进行了此操作。这是代码:
keyCommandHandler(command: Command): void {
switch (command.name) {
case 'App.Escape':
if (this._router.url.indexOf('dialogs') === -1 && this._router.url.indexOf('subdialogs') === -1) {
this.cancelHelper();
}else {
this._router.navigate(['./', { outlets: { dialogs: null }, relativeTo: this._activatedRoute }]);
}
break;
}
}
可能会有另一种子集化表格的方式,这里我在循环中手动定义了bin(即从tmp2到tmp13)。但是,它已经可以很好地工作了。这是我在使用代码之前获得的一种发行版:enter image description here
然后使用它: enter image description here
杰拉德