【问题标题】:How to rescale value to a specific range?如何将值重新调整到特定范围?
【发布时间】:2021-08-30 15:12:37
【问题描述】:

我正在尝试将包含在 0.17 和 0.00002589 之间的 Rdata 数据集重新缩放到 0 和 1 之间的范围。我希望累积频率等于 1。

我尝试使用 rescale 函数(来自 scales 包):

library(scales)

t <-rescale(df, to = c(0,1)) #data go from [0.00002589:0.17] to [0.53:0.00004914]

cumsum(t)= 4.24...

如何更正我的数据以使 cumsum 等于 1?

感谢您的帮助。

【问题讨论】:

    标签: r range cumsum rescale


    【解决方案1】:

    你可以添加

    t <- t / sum(t)
    

    例如:

    set.seed(42)
    df <- rnorm(n = 10, 1)
    t <- scales::rescale(df, to = c(0,1))
    t <- t / sum(t)
    cumsum(t)
    
    
    #[1] 0.1740706 0.1740706 0.2575087 0.3652035 0.4523411 0.4935800
    # [7] 0.6802913 0.7225612 0.9548573 1.0000000
    

    【讨论】:

      猜你喜欢
      • 2021-09-01
      • 1970-01-01
      • 2016-05-22
      • 2023-03-03
      • 1970-01-01
      • 2019-11-04
      • 2021-01-16
      • 2011-05-02
      • 1970-01-01
      相关资源
      最近更新 更多