在R中缩放组内的值

在R中缩放组内的值,r,R,您可以按组应用scale功能: 这可以在base R中完成: x y y2 1 1 -0.7071 1 3 0.7071 2 4 0.7071 2 3 -0.7071 3 5 -0.2182 3 2 1.0910 3 3 -0.8728 在数据表中: library(dplyr) df %>% group_by(x) %>% mutate(y2 = scale(y)) 数据 library(data.table) setDT(df)[, y2

您可以按组应用
scale
功能:

这可以在base R中完成:

x  y  y2
1  1  -0.7071
1  3   0.7071
2  4   0.7071
2  3  -0.7071
3  5  -0.2182
3  2   1.0910
3  3  -0.8728
数据表中

library(dplyr)
df %>% group_by(x) %>% mutate(y2 = scale(y))
数据

library(data.table)
setDT(df)[, y2 := scale(y), x]

df x==3的ex怎么样???@Neel:scale(c(5,2,3))=-0.2182,1.0910,--0.8728使用
dplyr
package按
x
分组。请参阅dplyr方法不正确。@Neel我在所有3种方法中都得到相同的输出。如果您使用的是OP的数据,那么请注意OP的数据中有6行,而在预期的输出中,它们显示了7行。用我使用过的数据更新了帖子。该死的,这是真的,当我使用OP的数据时,结果不匹配。
library(dplyr)
df %>% group_by(x) %>% mutate(y2 = scale(y))
library(data.table)
setDT(df)[, y2 := scale(y), x]
df <- data.frame(x=c(1,1,2,2,3,3,3),y=c(1,3,4,3,5,2,3))