Dans R, ce qui est la façon la plus simple de mettre à l'échelle un vecteur un vecteur unitaire?
Dans R, ce qui est la façon la plus simple de mettre à l'échelle un vecteur un vecteur unitaire?
Par exemple, supposons que
>vec
[1] 1 0 2 1
Et
>vec / sqrt(sum(vec^2))
[1] 0.4082483 0.0000000 0.8164966 0.4082483
est son vecteur unitaire.
Est-il une fonction intégrée dans la R?
R semble encore faible sur le calcul matriciel fonctionnalité
La fonction de base
La fonction de base
scale()
peut faire sqrt(sum(x^2)/(n-1))
, mais ce n'est pas tout à fait à ce que vous recherchez.
OriginalL'auteur Tom | 2014-12-13
Vous devez vous connecter pour publier un commentaire.
Vous pourriez faire vous-même une fonction:
Maintenant seulement utiliser:
De ma compréhension, il n'y a pas de fonction intégrée pour faire
x / sqrt(sum(x^2))
, mais vous pourriez faire votre propre rapide de la fonction. J'ai édité la réponse pour en tenir compte. Cela vous aide?Merci quand même. Je sais aussi que c'est une méthode et me demande simplement qu'il y a peut être une fonction intégrée dans la R pour une commune de calcul que je n'ai pas trouvé.
OriginalL'auteur
La
ppls
paquet contient la fonctionnormalize.vector
, qui fait exactement ce que vous voulez. Cependant, le chargement d'un paquet semble pas beaucoup plus simple que d'entrer dans une ligne de définition de la fonction-vous...Que le paquet
ppls
implémente la fonction signifie probablement qu'il n'existe pas de norme de la fonction R pour atteindre cet objectif. (Sauf si, bien sûr, l'auteur deppls
était tout simplement pas conscients de la norme de la fonction...)OriginalL'auteur Stibu