根据最大值缩放数字

Scale numbers based on the largest value

我有这样的数据:

mydata <- c(365673, 478934, 897464, 254778, 678899)

我想使用唯一编号转换 mydata。这就是我计算唯一编号的方式:

我想要的输出将是:

newdata <- mydata / 800000
newdata
# [1] 0.4570913 0.5986675 1.1218300 0.3184725 0.8486238

如何创建函数?

我想这就是你想要做的:

scale.nums <- function(v){
  x = max(v)
  pow <- 10^floor(log10(x))
  x <- x %/% pow * pow
  v/x
}

例如:

> mydata <- c(365673, 478934, 897464, 254778, 678899)
> scale.nums(mydata)
[1] 0.4570913 0.5986675 1.1218300 0.3184725 0.8486238

plyrround_any 函数,在这里很有用。

mydata <- c(365673, 478934, 897464, 254778, 678899)

mydata/max(plyr::round_any(mydata, 100000, floor))
#[1] 0.4570913 0.5986675 1.1218300 0.3184725 0.8486238