私が通常採用しているアプローチよりも、特定のタイプの変数を計算するためのより簡単な方法があるのではないかと思います。
以下の例はおそらくそれを最もよく説明しています。私は2列のデータフレームを持っています(果物と果物が腐っているかどうか)。行ごとに、たとえば、腐った同じカテゴリの果物の割合を追加したいと思います。たとえば、リンゴには4つのエントリがあり、そのうち2つは腐っているので、リンゴの各行は0.5と表示されます。目標値(純粋に例として)は、「望ましい結果」列に含まれています。
私は以前、フルーツ変数で「ddply」コマンドを使用して(関数としてsum / lengthを使用)、新しい3 * 2データフレームを作成することでこの問題に取り組みました。*「merge」コマンドを使用して、これらの値を古いデータフレームにリンクします。 。
これは回り道のように感じます、そして私はこれをするより良い/より速い方法があるかどうか疑問に思いました!理想的には一般的なアプローチであり、パーセンテージの代わりに、たとえばすべての果物が腐っているのか、果物が腐っているのかなどを判断する必要がある場合は、簡単に調整できます。
よろしくお願いします。
W
Fruit Rotten Desired_Outcome_PercRotten
1 Apple 1 0.5
2 Apple 1 0.5
3 Apple 0 0.5
4 Apple 0 0.5
5 Pear 1 0.75
6 Pear 1 0.75
7 Pear 1 0.75
8 Pear 0 0.75
9 Cherry 0 0
10 Cherry 0 0
11 Cherry 0 0
#create example datagram; desired outcome columns are purely inserted as illustrative of target outcomes
Fruit=c(rep("Apple",4),rep("Pear",4),rep("Cherry",3))
Rotten=c(1,1,0,0,1,1,1,0,0,0,0)
Desired_Outcome_PercRotten=c(0.5,0.5,0.5,0.5,0.75,0.75,0.75,0.75,0,0,0)
df=as.data.frame(cbind(Fruit,Rotten,Desired_Outcome_PercRotten))
df