【问题标题】:How to prepare my data fo a factorial repeated measures analysis?如何为因子重复测量分析准备数据?
【发布时间】:2013-11-26 13:11:15
【问题描述】:

目前,我的数据框是宽格式的,我想在主题因素(性别和组织)和主题因素(任务类型)之间进行两个因子重复测量分析。下面我用一个样本说明了我的数据看起来如何(实际数据集有更多变量)。以“1_”和“2_”开头的变量分别属于任务 1 和任务 2 期间的测量。这意味着 1_FD_H_org2_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 包来实现这一点,但不知道该怎么做。有谁可以帮忙吗?

【问题讨论】:

    标签: r reshape glm reshape2


    【解决方案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),]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2014-07-06
      • 2013-05-11
      • 1970-01-01
      相关资源
      最近更新 更多