3 つの列を持つ data.frame があり、それぞれが要因と考えることができます。data.frame でいくつかの統計を計算し、それを新しいフレームに保存したいと思います。より具体的には、次のフィールドがあります。
obs, len, src
A 10 X
B 10 Y
各長さでの各ソースの内訳を計算したいと思います (つまり、長さ 10 のソース X からの観測値の何パーセントが「A」、「B」などであるか)。
これに対する明らかなアプローチは、2 つの for ループを使用して長さとソースを反復処理し、次に nrow() と count() を使用して、計算する必要がある値を取得することです。
relevant_subset <- data[data$src==source & data$len==length,]
breakdown_info <- count(relevant_subset)
breakdown_info$frac <- breakdown_info$freq / nrow(relevant_subset)
double for ループの使用を避け、よりベクトル化されたアプローチを使用する方法はありますか? 長さとソースごとに変更された breakdown_info を保持する新しいフレームを事前に割り当てるスマートな方法はありますか?