R根据其他值缩放一个值

时间:2015-06-10 11:35:00

标签: r

是否有办法将一个值缩放为固定值,另一个值缩放到相应的缩放值。我无法在R中使用scale方法,因为它需要一个范围。

例如,

ID    X    Y
1     25   25   
2     20   40
3     10   50
4     50   20

我需要将Y值缩放到固定值100.相应地,X值应相应缩放。

ID    X    Y
1     100   100   
2     50    100
3     20    100
4     250   100

2 个答案:

答案 0 :(得分:3)

如果您的数据是

id <- c(1,2,3,4)
X <- c(25,20,10,50)
Y <- c(25,40,50,20)
df <- data.frame(id,X,Y)

你可以尝试

df$X <- df$X*100/df$Y
df$Y <- 100


# > df
#   id   X   Y
# 1  1 100 100
# 2  2  50 100
# 3  3  20 100
# 4  4 250 100

答案 1 :(得分:0)

据推测,您也可以考虑快速查看scale包中可用的base函数。例如,如果您希望缩放部分数据框,可以:

data("mtcars")
test <- scale(x = mtcars[,2:ncol(mtcars)], scale = TRUE)

您可以轻松修改语法,进一步设置basecentre,以便获得的比例符合您的要求:

tst_mpg <- scale(x = mtcars$mpg, scale = 1, center = 0.5)