gpt4 book ai didi

r - 按因子将比例列添加到数据框

转载 作者:行者123 更新时间:2023-12-02 21:47:02 25 4
gpt4 key购买 nike

我正在尝试将一列添加到由按因子标准化的值组成的数据框中。

例如:

'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

最佳答案

跟进您的by尝试:

df <- data.frame(A = factor(rep(c("a", "b"), each = 4)),
B = sample(1:4, 8, TRUE))

ll <- by(data = df, df$A, function(x){
x$B_scale <- scale(x$B)
x
}
)

df2 <- do.call(rbind, ll)

关于r - 按因子将比例列添加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19350950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com