R Normalizaton

Normalization

转录组中normalizaton的方法

1.R中减去均值的方法

# 设置一个矩阵
> x <- matrix(c(1,2,3,8,7,6,5,4,3),ncol = 3,byrow = T)
> x
     [,1] [,2] [,3] 
[1,]    1    2    3
[2,]    8    7    6
[3,]    5    4    3
# apply函数
> center_apply <- function(x) {
+     apply(x, 2, function(y) y - mean(y))
+ }
> center_apply(x) ## apply it
           [,1]       [,2] [,3]
[1,] -3.6666667 -2.3333333   -1
[2,]  3.3333333  2.6666667    2
[3,]  0.3333333 -0.3333333   -1


# rep函数
> x - rep(colMeans(x), rep.int(nrow(x), ncol(x)))
           [,1]       [,2] [,3]
[1,] -3.6666667 -2.3333333   -1
[2,]  3.3333333  2.6666667    2
[3,]  0.3333333 -0.3333333   -1

scale函数

将每列除以标准差(center=T);

每列除以sqrt(sum(x^2)/(n-1))(center=F);

如果用标准差scale而不center:scale(x, center = FALSE, scale = apply(x, 2, sd, na.rm = TRUE))

# scale函数,center默认T,意为减去mean
> scale(x,center = TRUE,scale = F)
           [,1]       [,2] [,3]
[1,] -3.6666667 -2.3333333   -1
[2,]  3.3333333  2.6666667    2
[3,]  0.3333333 -0.3333333   -1
attr(,"scaled:center")
[1] 4.666667 4.333333 4.000000

> scale(x,center = TRUE,scale = T)
           [,1]       [,2]       [,3]
[1,] -1.0440738 -0.9271726 -0.5773503
[2,]  0.9491580  1.0596259  1.1547005
[3,]  0.0949158 -0.1324532 -0.5773503
attr(,"scaled:center")
[1] 4.666667 4.333333 4.000000
attr(,"scaled:scale")
[1] 3.511885 2.516611 1.732051


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值