我正在嘗試將一列添加到由歸一化值組成的數據框中。按比例向數據框添加比例列
例如:
'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 ...
我想增加一列,是由地區團體歸逮捕值。
我想出的最好的是:
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
df2是一個雙矩陣?當我將它分配給數據框時,與我的編輯中的錯配相同。 – JMcClure
不,df2對應於您的最終數據幀。無需「分配」它。運行'str(df2)'。因爲你沒有提供[最小的,可重現的數據集](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610),我做了舉一個小例子。 – Henrik
對,在函數中錯過了一個任性的'x'。非常感謝。 – JMcClure