r - R中scale()函数中的attr(,"scaled:center")和attr(,"scaled:scale")是什么?

标签 r

我运行了代码:

r_df_scaled <- as.matrix(scale(r_df[,c(-1,-2)]))

结果是一个具有标准正态分布的矩阵,如下所示:

 attr(,"scaled:center")
           Fresh             Milk          Grocery           Frozen 
       10639.957         4780.110         6899.267         2484.594 
Detergents_Paper       Delicassen 
        2229.187         1192.970 
attr(,"scaled:scale")
           Fresh             Milk          Grocery           Frozen 
       8630.3470        3800.6264        5844.9457        2359.4800 
Detergents_Paper       Delicassen 
       2581.6316         923.4373 

你能解释一下scaled:centerscaled:scale指的是什么吗?

最佳答案

scaled:center 查找行(或列,取决于逗号所在的位置)的平均值

例如,数据框“测试”:

   cola colb colc
    1    2    1
    4    3    2
    4    1    3

对于可乐,平均值为 (1+4+4)/3=3

对于 colb,平均值为 (3+2+1)/3=2

对于 colc,平均值为 (1+2+3)/3=2

因此,请在对“test”中的行运行缩放函数后查看打印的消息

           cola colb colc
[1,] -1.1547005    0   -1
[2,]  0.5773503    1    0
[3,]  0.5773503   -1    1
attr(,"scaled:center")
cola colb colc 
   3    2    2 
attr(,"scaled:scale")
    cola     colb     colc 
1.732051 1.000000 1.000000 

你看到attr(,"scaled:center")了吗?与我们计算的平均值相同

scaled:scale 显示该行/列中的标准差

> sd(test$cola)
[1] 1.732051
> sd(test$colb)
[1] 1
> sd(test$colc)
[1] 1

attr(,"scaled:scale")相同

关于r - R中scale()函数中的attr(,"scaled:center")和attr(,"scaled:scale")是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41648538/

相关文章:

r - 函数总是返回数字(0)

r - 基于ID的时间序列插补

r - 使用 R 中的最后一列名称对数据框进行排序

r - 如何从 R 中大小为 N 的数据帧中获取大小为 n 的所有可能子样本?

c++ - 使用 Rcpp 从 C++ 中调用 R 的 optim 函数

R从ctree(partykit)中提取内部节点信息和拆分

r - ggvis - 条形图的交互式 X 轴

r - R中的等频和等宽分箱

r - Revolution R 中的模块是开源的。 R 许可证是否意味着我可以免费使用随附的 R 软件包?

r - 使用 group_by 和 case_when 为每组生成单个值