我有一个数据框mytable
,其中包含对一组人进行的两次测量 A 和 B 的结果。
person measure outcome
1 A 3.6
2 A 2.3
3 A 4.2
1 B 3.9
2 B 3.2
3 B 2.7
我想为每个人计算 A 和 B 的分数之间的差异。也就是说,我想获得:
person outcome_diff
1 -0.3
2 -0.9
3 1.5
我搜索了一个答案,但我只在一个因素的水平内发现了一些有关的转换,而不是在它们之间。
我终于设法通过这样做来解决它:
mytable$outcome[mytable$measure=="B"] <- -1*mytable$outcome[mytable$measure=="B"]
outtable <- aggregate(outcome ~ person, data=mytable, FUN=sum)
虽然它有效,但我想知道如何在不弄乱原始表格的情况下做到这一点。此外,该解决方案对于计算差异非常具体。有什么更通用的方法可以实现相同的目标?