【问题标题】:R plyr - Calculating scores based on grand and subject mean for each factorR plyr - 根据每个因素的总平均数和主题平均数计算分数
【发布时间】:2013-12-31 00:29:58
【问题描述】:

我需要将以下内容应用于包含多个汇总分数的 data.set。;

数据集:P = 参与者,TYPE = 试验类型(因子),rt=score

  TYPE P      rt
1    A 1 607.500
2    A 2 481.000
3    A 3 298.125
4    A 5 568.250

我需要计算以下标准化分数:NewScore = OldScore - Grandmean(RT 列的平均值)+ Participant Mean(给定主题的 RT 列的平均值,P)

我一直在尝试 ddply 并提出以下建议;

grandmean<-mean(data$rt)
ddply(data, .(P, TYPE), mutate, mean=mean(rt), grandmean=grandmean, subjectmean=mean(rt[P]), newscore=rt-grandmean-subjectmean)

这里的关键问题是;如何让 subjectmean 根据当前行主题对数据进行子集化。

ddply 在这里是否合适?我试图避免使用循环...

谢谢!

【问题讨论】:

    标签: r normalization aggregate plyr


    【解决方案1】:

    您没有在TYPE 列上描述拆分,所以我将在此处省略。但你在正确的轨道上。我会使用transform 而不是mutate

    data$grandmean <- mean(data$rt)
    ddply(data, .(P), transform, newscore = rt - grandmean - mean(rt))
    

    通常最容易让plyr 对单个事物进行操作,而不是试图依靠它在其范围之外查找全局grandmean。因此,改为将其设为一列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多