以下のデータフレームを使用して、被験者の反応時間の反復測定分散分析を計算することができました。問題のデータフレームは次のとおりです。
> str(a)
'data.frame': 2778 obs. of 9 variables:
$ Phase : Factor w/ 1 level "Test": 1 1 1 1 1 1 1 1 1 1 ...
$ Subject : Factor w/ 17 levels "1","2","3","5",..: 7 7 7 7 7 7 7 7 7 7 ...
$ Group : Factor w/ 2 levels "Attn","Dist": 1 1 1 1 1 1 1 1 1 1 ...
$ Global : Factor w/ 2 levels "D","S": 1 1 1 1 1 1 1 1 1 1 ...
$ Local : Factor w/ 2 levels "D","S": 1 1 1 1 1 1 1 1 1 1 ...
$ trialtype: Factor w/ 1 level "Dist": 1 1 1 1 1 1 1 1 1 1 ...
$ RT : num 477 682 720 NaN 604 720 910 707 705 758 ...
$ ACC : logi TRUE TRUE TRUE FALSE TRUE TRUE ...
そして、これが反応時間のANOVAを計算するために使用したコードです。
raw<-read.table('R_notarg_noattn.tdf',header=T)
head(raw)
str(raw)
raw$Subject = factor(raw$Subject)
raw$logrt = log10(raw$RT) # logorithm of RT
hist(raw$logrt)
tsttrl_nooutliers = subset(raw, logrt>2 & ACC==TRUE) # take values greater than 2 logs AND where subj responded correctly
attach(tsttrl_nooutliers) # make column names available as global variables
hist(logrt)
summary(aovrt <- aov(logrt ~ Group*Global*Local + Error(Subject/(Global*Local)), subset=Phase=='Test', data=tsttrl_nooutliers)) # ANOVA table
meanrt=10^tapply(logrt,list( Global=Global, Local=Local, Group=Group), mean) # de-log and calculate means by condition
par(mfcol=c(1,2)) # c() *combines* values into vector/list; par() sets graphical parameters... equivalent to Matlab's set() ????
barplot(meanrt[,,'Attn'],beside=T,ylim=c(700,1000),xpd=F)
barplot(meanrt[,,'Dist'],beside=T,ylim=c(700,1000),xpd=F)
detach(tsttrl_nooutliers)
ブール列にコード化されているエラー率についても、同様の分析を繰り返したいと思いますACC
。この計算では、条件ごとにサブジェクトごとにエラー率を計算する中間ステップが必要になるため、これをどのように行うべきか疑問に思いました。「条件」とは、$ Group、$ Global、$ Local、$trialtypeなどの要素の一意の組み合わせを意味します(前のスニペットのように、$ Phase == Testの試行のみを選択します)。
誰かが私を正しい方向に向けることができますか?要するに、エラー率を取得する方法がわからないので、関数に問題なくフィードできるはずaov
です。