我有一個數據框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