在R中,将矢量缩放到单位矢量的最简单方法是什么?

时间:2014-12-13 05:41:40

标签: r vector scaling

在R中,将矢量缩放到单位矢量的最简单方法是什么?

例如,假设

>vec
[1] 1 0 2 1

>vec / sqrt(sum(vec^2)) 
[1] 0.4082483 0.0000000 0.8164966 0.4082483

是它的单位向量。

R中是否有一些内置函数?

2 个答案:

答案 0 :(得分:7)

你可以让自己成为一个职能:

scalar1 <- function(x) {x / sqrt(sum(x^2))}

现在只需使用:

> scalar1(vec)
[1] 0.4082483 0.0000000 0.8164966 0.4082483

答案 1 :(得分:2)

ppls包中包含函数normalize.vector,它完全符合您的要求。但是,加载包看起来并不比自己输入函数的一行定义简单得多......

ppls实现该函数可能意味着没有标准的R函数来实现这一点。 (当然,除非ppls的作者根本不知道标准函数......)

相关问题