に共通の識別子および特定の列に基づいて値を行分割、私は次のようになり、データフレームを得た:は比例マージ処理後のデータフレーム
df <- data.frame(trip=c(315,328,422,422,458,652,652,652,699),
catch_kg=c(10,8,12,2,26,4,18,14,11),
age_1=c(0,0,0,0,0,0,0,0,0),
age_2=c(2,1,7.5,7.5,8,11,11,11,13),
id=c(1,2,3,3,4,5,5,5,6))
trip catch_kg age_1 age_2 id
315 10 0 2 1
328 8 0 1 2
422 12 0 7.5 3
422 2 0 7.5 3
458 26 0 8 4
652 4 0 11 5
652 18 0 11 5
652 14 0 11 5
699 11 0 13 6
ここで釣り旅行を表す旅行、catch_kg(キロ)で釣った魚の量、age_1 & age_2は、各旅行中や年齢層ごとの個体数で、IDは、各旅行で長距離のアイデンティティを表します。
いくつかの釣り旅行では、私は1つ以上の運行を持っています - id欄でアクセスできます。ここでは、1つ以上の運行を伴う旅行には同じID番号が割り当てられます。例えば、トリップ番号422には2つの牽引力(id = 3)があります。
この時点では、1つ以上の運行を伴う旅行では、各年齢グループ内の個体数が、その特定の旅行内に現れる個体数で等しく分割されています。たとえば、旅行422では合計15人の人がいますが、2人のハルスがいるので、この数を2で割って、1人あたり7.5人になります。
しかし、私が望むのは、各年齢グループ内の個体数を、各運搬グループ内の総漁獲量の割合として計算することです。 したがって、私は次のように見えるデータフレームを持っていると思い終わりに:
trip catch_kg age_1 age_2 id
315 10 0 2 1
328 8 0 1 2
422 12 0 13 3
422 2 0 2 3
458 26 0 8 4
652 4 0 4 5
652 18 0 16 5
652 14 0 13 5
699 11 0 13 6
これは、基本的に旅行422(2つの曳)のために、例えば、私が持っているであろう3つの計算のルールであります以下の計算:
haul1:12 *(7.5 + 7.5)/(12 + 2)= 13個体 haul2:2 *(7.5 + 7.5)/(12 + 2)= 2個体
はありますこれらの計算を簡単に計算する方法は? ご協力いただければ幸いです。
-M