我有這樣的資料:
mydata <- c(365673, 478934, 897464, 254778, 678899)
我想使用唯一編號轉換mydata。這就是我計算唯一編號的方式:
- 提取最大的數,在本例中為 897464
- 之后我們從 897464 得到唯一編號是 800000
- 然后將向量與該值相除
我想要的輸出將是:
newdata <- mydata / 800000
newdata
# [1] 0.4570913 0.5986675 1.1218300 0.3184725 0.8486238
如何創建函式?
uj5u.com熱心網友回復:
我認為這就是你想要做的:
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
uj5u.com熱心網友回復:
plyr具有round_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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/312516.html
