係数によって正規化された値で構成されるデータ フレームに列を追加しようとしています。
例えば:
'data.frame': 261 obs. of 3 variables:
$ Area : Factor w/ 29 levels "Antrim","Ards",..: 1 1 1 1 1 1 1 1 1 2 ...
$ Year : Factor w/ 9 levels "2002","2003",..: 1 2 3 4 5 6 7 8 9 1 ...
$ Arrests: int 18 54 47 70 62 85 96 123 99 38 ...
エリア別にグループで正規化された Arrests 値の列を追加したいと思います。
私が思いついた最高のものは次のとおりです。
data$Arrests.norm <- unlist(unname(by(data$Arrests,data$Area,function(x){ scale(x)[,1] } )))
このコマンドは処理されますが、データがスクランブルされます。つまり、正規化された値がデータ フレーム内の正しい領域に一致しません。
あなたのヒントに感謝します。
編集:スクランブルされたデータの意味を明確にするために、コードの後にデータ フレームをサブセット化すると、正規化された値が明らかに別の因子グループに属している次のような出力が得られます。
Area Year Arrests Arrests.norm
199 Larne 2002 92 -0.992843957
200 Larne 2003 124 -0.404975825
201 Larne 2004 89 -1.169204397
202 Larne 2005 94 -0.581336264
203 Larne 2006 98 -0.228615385
204 Larne 2007 8 0.006531868
205 Larne 2008 31 0.418039561
206 Larne 2009 25 0.947120880
207 Larne 2010 22 2.005283518