ddply の次のコード:
ddply(df, .(groupA), summarise, x=sum(x)/sum(a), y=sum(x)/sum(b))
上記の関数を実行してy
によって値を計算すると、取得しよsum(x)/sum(b)
うとしているものが取得されず、代わりに が取得sum(sum(x)/sum(a))/sum(b)
さx
れます。x=sum(x)/sum(a)
x
では、新しく計算されたx
値を使用せずに、元の df を使用する方法はx
? この機能は以前は実装されておらず、2011 年または 2012 年のいずれかの時点で追加されたことを覚えています。記憶が正しければ解決方法はあると思いますが…
ありがとう。
[アップデート]
たとえば、SimonO101 の場合、次の 2 つのコードは異なる結果を返します。
ddply(mtcars,.(cyl),summarise,x=mean(hp/wt))
ddply(mtcars,.(cyl),summarise,hp=mean(hp),wt=mean(wt),x=mean(hp/wt))
2 番目の関数は、元の df のandではなく、計算されたばかりのhp
andからとの値を取得するためです。したがって、これらの列に元の列と同じ名前を付けることを避けずに、名前の競合を回避する方法を知りたいです。wt
mean(hp)
mean(wt)
hp
wt