【问题标题】:Normalisation of data in rows in RR中行中数据的规范化
【发布时间】:2017-06-01 19:49:52
【问题描述】:

我想规范化数据框行中的值。 换句话说,将给定列中的每一行除以从给定列中所有行的总和与行的最低总和计算的比率。这是我的例子:

df <- data.frame(x = 5:1, y = 2:6, z = 11:25)

找到总和最小的列

sum(df$x)
sum(df$y)
sum(df$z)

获取标准化值

df$x_norm <- df$x/(sum(df$x)/sum(df$x))
df$y_norm <- df$y/(sum(df$y)/sum(df$x))
df$z_norm <- df$z/(sum(df$z)/sum(df$x))

【问题讨论】:

    标签: r row normalization normalize


    【解决方案1】:

    我们可以通过获取列总和 (colSums),将其除以 'v1' 的最小值,最后将数据集除以 'v2 ' 创建新列

    v1 <- colSums(df)
    v2 <- v1/min(v1)
    df[paste0(names(df), "_norm")] <- t(t(df)/v2)
    

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 2020-07-09
      • 2018-11-16
      • 2017-01-12
      • 1970-01-01
      • 2014-12-23
      • 2023-03-26
      • 2020-09-25
      相关资源
      最近更新 更多