我有以下数据框(这只是数据框的头部)。ID 列是主题(我在数据框中有更多主题,而不仅仅是主题 #99)。我只想通过“主题”和“条件”计算 z.score(绝对值)小于 1 的观察值的平均值“rt”。
> b
subject rt ac condition z.score
1 99 1253 1 200_9 1.20862682
2 99 1895 1 102_2 2.95813507
3 99 1049 1 68_1 1.16862102
4 99 1732 1 68_9 2.94415384
5 99 765 1 34_9 -0.63991180
7 99 1016 1 68_2 -0.03191493
我知道在对数据进行子集化后,我可以使用 tapply 或 dcast(来自 reshape2)来做到这一点:
b1 <- 子集(b, abs(z.score) < 1)
b2 <- dcast(b1, subject~condition, mean, value.var = "rt")
subject 34_1 34_2 34_9 68_1 68_2 68_9 102_1 102_2 102_9 200_1 200_2 200_9
1 99 1028.5714 957.5385 861.6818 837.0000 969.7222 856.4000 912.5556 977.7273 858.7800 1006.0000 1015.3684 913.2449
2 5203 957.8889 815.2500 845.7750 933.0000 893.0000 883.0435 926.0000 879.2778 813.7308 804.2857 803.8125 843.7200
3 5205 1456.3333 1008.4286 850.7170 1142.4444 910.4706 998.4667 935.2500 980.9167 897.4681 1040.8000 838.7917 819.9710
4 5306 1022.2000 940.5882 904.6562 1525.0000 1216.0000 929.5167 955.8571 981.7500 902.8913 997.6000 924.6818 883.4583
5 5307 1396.1250 1217.1111 1044.4038 1055.5000 1115.6000 980.5833 1003.5714 1482.8571 941.4490 1091.5556 1125.2143 989.4918
6 5308 659.8571 904.2857 966.7755 960.9091 1048.6000 904.5082 836.2000 1753.6667 926.0400 870.2222 1066.6667 930.7500
在上面的 b1 示例中,每个受试者都有满足子集要求的观察结果。但是,对于某个主题,我可能在子集之后不会有观察结果。在这种情况下,我想在他没有满足子集要求的观察的特定条件下为该主题在 b2 中获得 NA。有没有人有办法做到这一点?任何帮助将不胜感激。
最好的,阿亚拉