如何重新缩放点矩阵?

时间:2010-12-10 10:13:55

标签: r

现在我这样做:

d = approx(density(csvdata[,'X'],n=5000),xout=csvdata[,'X'])
dfact = 40/max(d$y)
for(i in 1:nrow(csvdata)) {
  d$y[i] = (d$y[i]*dfact)-20
}

我在这里做的是重新调整密度函数,它始终高于0,显示在我的图表底部的-20下方,并且总是适合+20的顶部,所以我更容易能够发现线上的任何不规则。现在你可以看到我通过循环来做这个,但是也许有一些内置的内置它?

1 个答案:

答案 0 :(得分:3)

y是一个向量,*-是向量化函数,因此您无需循环遍历一次执行计算的数字向量。只需一次完成所有操作:

d$y <- (d$y * dfact) - 20

或更好(不是d$),

d <- within(d, y <- (y * dfact) - 20)

dfact是一个标量(R中的长度为1的向量,因为它没有单独的标量概念),但R将展开dfact recycle 是R)中的正确术语到所需的长度,以允许上述计算正常进行。