Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R数据帧中缩放列的段?_R_Dataframe_Scale - Fatal编程技术网

如何在R数据帧中缩放列的段?

如何在R数据帧中缩放列的段?,r,dataframe,scale,R,Dataframe,Scale,我有一个带有数值和类别的数据框。我需要缩放数值,但只针对其自身类别的观察值(希望不会将数据帧分割成碎片,然后使用rbind将其缝合) 以下是一个例子: df <- data.frame(x = c(1, 2, 3, 4, 5, 20, 22, 24, 25, 27, 12, 13, 12, 15, 17), y = c("A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "C", "C", "C", "C",

我有一个带有数值和类别的数据框。我需要缩放数值,但只针对其自身类别的观察值(希望不会将数据帧分割成碎片,然后使用rbind将其缝合)

以下是一个例子:

df <- data.frame(x = c(1, 2, 3, 4, 5, 20, 22, 24, 25, 27, 12, 13, 12, 15, 17),
                 y = c("A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "C", "C", "C", "C", "C"))
df按组应用相同的功能(
scale

在R底

df$z <- with(df, ave(x, y, FUN = scale))
df

#    x y        z
#1   1 A -1.26491
#2   2 A -0.63246
#3   3 A  0.00000
#4   4 A  0.63246
#5   5 A  1.26491
#6  20 B -1.33242
#7  22 B -0.59219
#8  24 B  0.14805
#9  25 B  0.51816
#10 27 B  1.25840
#11 12 C -0.83028
#12 13 C -0.36901
#13 12 C -0.83028
#14 15 C  0.55352
#15 17 C  1.47605
数据表

library(data.table)
setDT(df)[, z:= scale(x), y]
按组应用相同的功能(
缩放

在R底

df$z <- with(df, ave(x, y, FUN = scale))
df

#    x y        z
#1   1 A -1.26491
#2   2 A -0.63246
#3   3 A  0.00000
#4   4 A  0.63246
#5   5 A  1.26491
#6  20 B -1.33242
#7  22 B -0.59219
#8  24 B  0.14805
#9  25 B  0.51816
#10 27 B  1.25840
#11 12 C -0.83028
#12 13 C -0.36901
#13 12 C -0.83028
#14 15 C  0.55352
#15 17 C  1.47605
数据表

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