我試圖找幾個小時的解決方案。我試圖搜索過,如果我忽略了這個問題的答案,請將其作爲重複關閉。R:計算列中值的分數,按另一列中的值進行分組
我有一個矩陣,通過transcript_id
排序,然後cond
:
transcript_id cond expr
A1 B1 40
A1 B2 30
A1 B3 20
A2 B2 35
A2 B3 45
A3 B1 23
A4 B1 64
A4 B3 43
我想一個新列,其中expr
每個transcript_id
內的部分列出:
transcript_id cond expr frac
A1 B1 40 0.4444
A1 B2 30 0.3333
A1 B3 20 0.2222
A2 B2 35 0.4375
A2 B3 45 0.5625
A3 B1 23 1
A4 B1 64 0.5981
A4 B3 43 0.4019
有一個聰明的方法來實現這個?
我天真的做法是編寫一個函數,循環每個獨特的元素在transcript_id
,但我卡住了。 請注意,並非每個transcript_id
都由全部三個cond
表示。與data.table
非常相似,這從另一個天:http://stackoverflow.com/questions/33335398/how-can-repeatedly-subtract-the-rows-of-a-data-matrix-in- r/3333629 - 使用'ave'在每個組中進行計算:'with(dat,ave(expr,transcript_id,FUN = prop.table))' – thelatemail