0
votes

Suppression conditionnelle d'un élément de vecteur

J'ai deux vecteurs A, B où B peut être 1 unité plus longue qu'un. Dans ce cas, je dois retirer le dernier élément de vecteur B pour les rendre égaux. J'ai essayé de suivre: xxx

dans les deux cas, je reçois xxx

mais quand je le fais sortir de ifelse () puis je peux obtenir Ce que j'attends: xxx

Je sais comment écrire ceci en utilisant "si", mais je cherche une meilleure option.


1 commentaires

3 Réponses :


3
votes

Je voudrais simplement sousper le vecteur à l'aide de la longueur du premier vecteur comme limite supérieure: xxx


2 commentaires

Comment sauriez-vous que ce vecteur est le plus petit? Peut-être que c'est mieux de le généraliser un peu plus ...


J'ai deux vecteurs A, B où B peut être 1 unité plus longue qu'un ... J'ai répondu en fonction des hypothèses données dans l'OP.



2
votes

ifelse code> est destiné aux conditions vectorisées, vous vérifiez ici une condition scalaire afin que vous puissiez utiliser si code> (si vous devez).

Cependant, dans ce cas Vous n'avez pas besoin des deux. Vous pouvez parcourir l'index de A code> qui donnera une longueur correcte de B code> si elle est plus longue ou de même longueur. P>

b[seq_along(a)]
#[1] 1 2 3


0 commentaires

2
votes
length(b) <- length(a)
b
[1] 1 2 3

0 commentaires