scale函数注意事项

Scale使用过程中需要注意以下几点:

  1. scale后接向量时,输出结果为array,注意不是向量

    > test <- scale(c(1,2,3))
    > test
         [,1]
    [1,]   -1
    [2,]    0
    [3,]    1
    attr(,"scaled:center")
    [1] 2
    attr(,"scaled:scale")
    [1] 1
    > is.array(test)
    [1] TRUE
    
  2. scale后接矩阵

    若输入为矩阵,则以为基准去标准化,生成的结果是一个array,行列与原matrix一致

    > test
         a  b  c
    [1,] 1  1 12
    [2,] 3  6 11
    [3,] 9 10  9
    > test2 <- scale(test)
    > test2
                  a           b          c
    [1,] -0.8006408 -1.03490978  0.8728716
    [2,] -0.3202563  0.07392213  0.2182179
    [3,]  1.1208971  0.96098765 -1.0910895
    attr(,"scaled:center")
            a         b         c 
     4.333333  5.666667 10.666667 
    attr(,"scaled:scale")
           a        b        c 
    4.163332 4.509250 1.527525 
    > is.array(test2)
    [1] TRUE
    
  3. scale后接dataframe

    > test <- data.frame(a=c(1,3,9),b=c(1,6,10),c=c(12,11,9),d=c(100,2,3))
    > test
      a  b  c   d
    1 1  1 12 100
    2 3  6 11   2
    3 9 10  9   3
    > scale(test) #默认以列为基准进行标准化
    #等同于 scale(as.matrix(test)) 以及 apply(test,2,scale)
                  a           b          c          d
    [1,] -0.8006408 -1.03490978  0.8728716  1.1546550
    [2,] -0.3202563  0.07392213  0.2182179 -0.5862095
    [3,]  1.1208971  0.96098765 -1.0910895 -0.5684455
    attr(,"scaled:center")
            a         b         c         d 
     4.333333  5.666667 10.666667 35.000000 
    attr(,"scaled:scale")
            a         b         c         d 
     4.163332  4.509250  1.527525 56.293872
    > scale(as.matrix(test))
                  a           b          c          d
    [1,] -0.8006408 -1.03490978  0.8728716  1.1546550
    [2,] -0.3202563  0.07392213  0.2182179 -0.5862095
    [3,]  1.1208971  0.96098765 -1.0910895 -0.5684455
    attr(,"scaled:center")
            a         b         c         d 
     4.333333  5.666667 10.666667 35.000000 
    attr(,"scaled:scale")
            a         b         c         d 
     4.163332  4.509250  1.527525 56.293872
    > apply(test,2,scale) # 2 代表依据列执行
                  a           b          c          d
    [1,] -0.8006408 -1.03490978  0.8728716  1.1546550
    [2,] -0.3202563  0.07392213  0.2182179 -0.5862095
    [3,]  1.1208971  0.96098765 -1.0910895 -0.5684455
    
    > apply(test,1,scale) # 1 代表依据行执行,最终结果为何是这样,因为第一行scale后得到的数据放到第一列了(类似scale后接向量的感觉),第二行scale后放第二列了,等等以此类推
    # 等同于scale(t(as.matrix(test)))
               [,1]       [,2]       [,3]
    [1,] -0.5735393 -0.6185896  0.3904344
    [2,] -0.5735393  0.1237179  0.7027819
    [3,] -0.3441236  1.3608971  0.3904344
    [4,]  1.4912023 -0.8660254 -1.4836507
    > scale(t(as.matrix(test)))
            [,1]       [,2]       [,3]
    a -0.5735393 -0.6185896  0.3904344
    b -0.5735393  0.1237179  0.7027819
    c -0.3441236  1.3608971  0.3904344
    d  1.4912023 -0.8660254 -1.4836507
    attr(,"scaled:center")
    [1] 28.50  5.50  7.75
    attr(,"scaled:scale")
    [1] 47.947888  4.041452  3.201562
    
    #所以,如果想按行scale怎么处理
    > t(apply(test,1,scale))
               [,1]       [,2]       [,3]       [,4]
    [1,] -0.5735393 -0.5735393 -0.3441236  1.4912023
    [2,] -0.6185896  0.1237179  1.3608971 -0.8660254
    [3,]  0.3904344  0.7027819  0.3904344 -1.4836507
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 224,383评论 6 522
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,028评论 3 402
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 171,486评论 0 366
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,786评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,793评论 6 399
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,297评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,685评论 3 428
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,655评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,192评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,223评论 3 345
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,343评论 1 354
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,966评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,656评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,130评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,257评论 1 275
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,869评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,407评论 2 365

推荐阅读更多精彩内容