我是 R 和这个列表的新手。我希望接下来的问题不是太基本或不了解情况。过去几个小时我一直在查看档案,但无济于事,所以我在这里发布。部分问题是我并不完全知道在引用我需要的功能时要使用的正确术语,这会使搜索变得困难。话虽如此,这就是我需要解决的问题:
我有一个如下所示的数据框:
Subject Item Region RT
13 102 1 R1 1245
14 102 4 R1 1677
15 102 7 R1 1730
25 103 1 R1 815
26 103 4 R1 828
27 103 7 R1 985
1489 102 1 R2 356
1490 102 4 R2 510
1491 102 7 R2 544
1501 103 1 R2 447
1502 103 4 R2 486
1503 103 7 R2 221
...
每个受试者对一个项目的多个区域都有一个 RT(反应时间)。每个主题看到多个项目。
我希望计算异常值,然后对它们进行规范化(尽管我真的不会担心这个线程中的解决方案)。作为第一步,我使用了一些简单的函数来计算每个主题的每个区域的平均值和 SD,并跨项目折叠(即(该主题在该区域中所有 RT 的平均值):
Mean = with(test, aggregate(RT, by = list(Subject,Region),mean, na.rm=TRUE))
SD = with(test, aggregate(RT, by = list(Subject,Region),sd, na.rm=TRUE))
然后我使用 cbind 并进行了一些重命名以将数据全部放在一个数据框中:
Subject Region Mean SD
1 102 R1 1143.7778 202.25530
2 102 R2 431.8611 125.84393
9 103 R1 923.0833 179.51098
10 103 R2 344.1667 146.51192
...
问题是我现在需要将所有方法与每个主题的正确区域相关联。也就是说,我想生成如下所示的输出(请注意,所有主题 102 区域 R1 具有相同的均值和 SD,但不同的 RT 等):
Subject Item Region RT Mean SD
13 102 1 R1 1245 1143.7778 202.25530
14 102 4 R1 1677 1143.7778 202.25530
15 102 7 R1 1730 1143.7778 202.25530
25 103 1 R1 815 923.0833 179.51098
26 103 4 R1 828 923.0833 179.51098
27 103 7 R1 985 923.0833 179.51098
1489 102 1 R2 356 431.8611 125.84393
1490 102 4 R2 510 431.8611 125.84393
1491 102 7 R2 544 431.8611 125.84393
1501 103 1 R2 447 344.1667 146.51192
1502 103 4 R2 486 344.1667 146.51192
1503 103 7 R2 221 344.1667 146.51192
似乎 merge 和 cbind 不会完成将一个值扩展和匹配到另一个值的工作。也许我需要使用融化或一些使用键的功能?
我希望有人可以向我指出相关功能供我阅读,以便我可以自己尝试,或者只是帮助一些代码。
谢谢阅读...