0
votes

Index du dernier espace dans chaque élément d'un vecteur de caractère

J'ai un vecteur de caractère x comme xxx

et je cherche une sortie me donnant l'index du dernier espace blanc < Pré> xxx

Je crois que je dois utiliser sappely afin que ma fonction s'applique à chaque élément du vecteur, mais incapable d'écrire cela: xxx

Pour myfunction J'écris quelque chose comme: xxx

qui donne naturellement tout na car aucun élément n'est un espace uniquement. < / p>

Je ne veux pas utiliser stringr pour cela.


0 commentaires

6 Réponses :


1
votes

Un moyen d'utiliser MAPPLY code> est de scinder les caractères sur WhitSpace, calculez le nombre de caractères du dernier élément et soustrayez-le à partir du total des caractères de la chaîne. xxx pré>

comment ça marche: strong> p>

prenons le dernier élément de la liste: P>

x <- c("Mt. Everest", "Cho oyu" ,"Mont Blanc", "Ojos del Salado")


2 commentaires

Merci @ronak, fonctionne bien, pouvez-vous s'il vous plaît expliquer moi la logique à l'intérieur de Mapply?


@Deep a mis à jour la réponse avec quelques explications.



1
votes

regexpr fera ... xxx

ou xxx


2 commentaires

REGEXPR donne: [1] 4 4 5 9 attr (, "match.length") [1] 8 4 6 7 attr (, "index.type") [1] "Charrs" attr ("utilbytes") [1 ] VRAI


@Deep c'est correct ... Un vecteur entier avec quelques attributs ... Avez-vous lu le fichier helpfile? RegexPR renvoie un vecteur entier de la même longueur que le texte donnant la position de départ de la première correspondance ou -1 s'il n'y en a aucun



1
votes

Vous pouvez atteindre cet article en utilisant gregexpr xxx

si vous souhaitez que votre réponse soit un vecteur xxx p > Crédit: La réponse a été améliorée avec l'aide de @Markus


1 commentaires

@Markus: Oui, votre solution est meilleure. Merci. Je vais éditer pour refléter cela.



0
votes


0 commentaires

0
votes

Vous pouvez également essayer grepraw () : xxx

avec dplyr : xxx


0 commentaires

0
votes

une alternative simple et concise xxx


0 commentaires