我有一个数据框mytable
与两个测量结果A和B,采取一组人。R:如何根据因子的水平计算差异?
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)
虽然它的作品,我不知道怎么做才不至于搞乱了原始表。而且,这个解决方案对于计算差异非常具体。什么可能是更一般的方式来实现相同的事情?
的感谢!我会看看'plyr'。至于'diff'选项,我不太确定我是否理解它:由于“结果”长度为6,“差异(结果)”应该长度为5.因此,为了获得所需的'outcome_diff',选择'diff(结果)'的奇怪元素,对吧? – DvD