これは私の元の質問の完全な再編集です
反復測定実験で収集された RT データに取り組んでいるとしましょう。私の通常のルーチンの一部として、私は常に RT を自然対数に変換し、試行回数を調整して各参加者内の各 RT の Z スコアを計算します。これは通常、SPSS 構文の単純な回帰で行われます。
split file by subject.
REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS R ANOVA
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT rtLN
/METHOD=ENTER trial
/SAVE ZRESID.
split file off.
R 生成データで同じ手順を再現するには:
#load libraries
library(dplyr); library(magrittr)
#generate data
ob<-c(1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3)
ob<-factor(ob)
trial<-c(1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6)
rt<-c(300,305,290,315,320,320,350,355,330,365,370,370,560,565,570,575,560,570)
cond<-c("first","first","first","snd","snd","snd","first","first","first","snd","snd","snd","first","first","first","snd","snd","snd")
#Following variable is what I would get after using SPSS code
ZreSPSS<-c(0.4207,0.44871,-1.7779,0.47787,0.47958,-0.04897,0.45954,0.45487,-1.7962,0.43034,0.41075,0.0407,-0.6037,0.0113,0.61928,1.22038,-1.32533,0.07806)
sym<-data.frame(ob, trial, rt, cond, ZreSPSS)
式(マークとダニエルのソリューションのブレンド)を適用してlm(log(rt)~trial)
回帰から残差を計算できますが、何らかの理由group_by
でここでは機能しません
sym %<>%
group_by (ob) %>%
mutate(z=residuals(lm(log(rt)~trial)),
obM=mean(rt), obSd=sd(rt), zRev=z*obSd+obM)
結果の値は、グループ化が開始されていないことを明確に示しています。うまくいかなかった理由はありますか?