Как да подготвя данните си за факторен анализ с повторени измервания?

Понастоящем моята рамка от данни е в широк формат и искам да направя факторен анализ на повторени измервания с два между предметни фактора (пол и организация) и фактор в рамките на предмета (тип задача). По-долу съм илюстрирал как изглеждат данните ми с извадка (действителният набор от данни има много повече променливи). Променливата, започваща с '1_' и '2_', принадлежи към измерванията съответно по време на задача 1 и задача 2. това означава, че 1_FD_H_org и 2_FD_H_org са едни и същи измервания, но съответно за задачи 1 и 2.

id  sex  org  task1     task2  1_FD_H_org  1_FD_H_text  2_FD_H_org  2_FD_H_text  1_apv  2_apv
2   F    T    Correct   2      69.97       68.9         116.12      296.02       10     27
6   M    T    Correct   2      53.08       107.91       73.73       333.15       16     21
7   M    T    Correct   2      13.82       30.9         31.8        78.07        4      9
8   M    T    Correct   2      42.96       50.01        88.81       302.07       4      24
9   F    H    Correct   3      60.35       102.9        39.81       96.6         15     10
10  F    T    Incorrect 3      78.61       80.42        55.16       117.57       20     17

Искам да анализирам дали има разлика между двете задачи на напр. FD_H_org за различните групи/условия (пол и организация).

Как да променя данните си, за да мога да ги анализирам с модел като този?
ezANOVA(data=df, dv=.(FD_H_org), wid=.(id), between=.(sex, org), within=.(task))

Мисля, че правилният формат на моите данни трябва да изглежда така:

id  sex  org  task  outcome   FD_H_org   FD_H_text  apv
2   F    T    1     Correct   69.97      68.9       10
2   F    T    2     2         116.12     296.02     27
6   M    T    1     Correct   53.08      107.91     16
6   M    T    2     2         73.73      333.15     21

Но не съм сигурен. Опитах се да постигна това с пакета reshape2, но не можах да разбера как да го направя. Някой, който може да помогне?


person Jaap    schedule 26.11.2013    source източник


Отговори (1)


Мисля, че вероятно трябва да го изградите отново, като свържете 2-те подмножества от колони заедно с rbind(). Единственият проблем тук беше, че вашите резултати предполагат различни типове данни, така че ги принудихте и двамата да изпратят текст:

require(plyr)
dt<-read.table(file="dt.txt",header=TRUE,sep=" ") # this was to bring in your data

newtab=rbind(
  ddply(dt,.(id,sex,org),summarize, task=1, outcome=as.character(task1), FD_H_org=X1_FD_H_org, FD_H_text=X1_FD_H_text, apv=X1_apv),
  ddply(dt,.(id,sex,org),summarize, task=2, outcome=as.character(task2), FD_H_org=X2_FD_H_org, FD_H_text=X2_FD_H_text, apv=X2_apv)
)

newtab[order(newtab$id),]

     id sex org task   outcome FD_H_org FD_H_text apv
  1   2   F   T    1   Correct    69.97     68.90  10
  7   2   F   T    2         2   116.12    296.02  27
  2   6   M   T    1   Correct    53.08    107.91  16
  8   6   M   T    2         2    73.73    333.15  21
  3   7   M   T    1   Correct    13.82     30.90   4
  9   7   M   T    2         2    31.80     78.07   9
  4   8   M   T    1   Correct    42.96     50.01   4
  10  8   M   T    2         2    88.81    302.07  24
  5   9   F   H    1   Correct    60.35    102.90  15
  11  9   F   H    2         3    39.81     96.60  10
  6  10   F   T    1 Incorrect    78.61     80.42  20
  12 10   F   T    2         3    55.16    117.57  17

РЕДАКТИРАНЕ - очевидно нямате нужда от plyr за това (и може да го забави), освен ако не правите допълнителни трансформации. Това е кодът без нестандартни зависимости:

  newcolnames<-c("id","sex","org","task","outcome","FD_H_org","FD_H_text","apv")
  t1<-dt[,c(1,2,3,3,4,6,8,10)]
  t1$org.1<-1
  colnames(t1)<-newcolnames
  t2<-dt[,c(1,2,3,3,5,7,9,11)]
  t2$org.1<-2
  t2$task2<-as.character(t2$task2)
  colnames(t2)<-newcolnames
  newt<-rbind(t1,t2)
  newt[order(newt$id),]
person Troy    schedule 26.11.2013