【问题标题】:Normalization using R使用 R 进行归一化
【发布时间】:2017-07-04 02:33:39
【问题描述】:

大家好,

我有一个包含 1.350.000 行和 113 列(样本)的表格。 我想要的是通过最小的样本来规范化我的所有数据。

例如:

Org samp1   samp2   samp3   samp4   samp5   samp6
A   0.08    4.92    3.34    5.50    2.98    2.99
B   1.97    3.96    4.49    2.79    4.73    4.00
C   4.05    3.99    4.89    3.72    3.83    5.17
D   1.70    5.11    3.97    3.37    2.71    3.22

以及它们对应的总和。

Sum 7.80    17.98   16.69   15.38   14.26   15.37

这是带有百分比的预期表格:

Org samp1   samp2   samp3   samp4   samp5   samp6
A   0.01    0.27    0.20    0.36    0.21    0.19
B   0.25    0.22    0.27    0.18    0.33    0.26
C   0.52    0.22    0.29    0.24    0.27    0.34
D   0.22    0.28    0.24    0.22    0.19    0.21

这是决赛桌:

Org samp1   samp2   samp3   samp4   samp5   samp6
A   0.08    2.14    1.56    2.79    1.63    1.52
B   1.97    1.72    2.10    1.42    2.59    2.03
C   4.05    1.73    2.29    1.89    2.10    2.62
D   1.70    2.22    1.85    1.71    1.48    1.63

考虑最小的总和值(samp1 = 7.80)。这是我想用来标准化所有样本的所有值的数字。 我知道这个理论,第一步是计算列中每个值的百分比,然后乘以最小值。

感谢您的帮助。

【问题讨论】:

  • 通过规范化,您的意思是您希望所有结果列的总和相同吗?
  • 我的意思是使用最小列总和的值。

标签: r normalization normalize


【解决方案1】:

你可以用这个:

生成数据

str <- 'Org samp1   samp2   samp3   samp4   samp5   samp6
A   0.08    4.92    3.34    5.50    2.98    2.99
B   1.97    3.96    4.49    2.79    4.73    4.00
C   4.05    3.99    4.89    3.72    3.83    5.17
D   1.70    5.11    3.97    3.37    2.71    3.22'



file <- textConnection(str)
df <- read.table(file, header = T)

得到归一化的总和值

step1 <- colSums(df[,-1])

step1/min(step1)

编辑:

重现您的示例结果:

step1 <- colSums(df[,-1])

round(df[,-1]/rep(step1,each=nrow(df)),2)

  samp1 samp2 samp3 samp4 samp5 samp6
1  0.01  0.27  0.20  0.36  0.21  0.19
2  0.25  0.22  0.27  0.18  0.33  0.26
3  0.52  0.22  0.29  0.24  0.27  0.34
4  0.22  0.28  0.24  0.22  0.19  0.21

round(df[,-1]/rep(step1,each=nrow(df)) * min(step1),2)

  samp1 samp2 samp3 samp4 samp5 samp6
1  0.08  2.13  1.56  2.79  1.63  1.52
2  1.97  1.72  2.10  1.41  2.59  2.03
3  4.05  1.73  2.29  1.89  2.10  2.62
4  1.70  2.22  1.86  1.71  1.48  1.63  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2016-02-16
    • 2019-01-13
    • 2013-03-08
    • 2013-03-10
    • 2013-04-10
    • 1970-01-01
    相关资源
    最近更新 更多