Chaîne de comparer en “si la clause” en boucle dans la R conduit à la “condition est de longueur > 1 et seul le premier élément sera utilisé”?

Je suis intrigué par ce comportement dans R. je veux juste faire une simple comparaison de chaîne d'une liste de chaînes produites par strsplit. Donc, ne pas comprendre pourquoi la suite des deux premiers morceaux de code pour faire ce que j'attendais, tandis que le troisième ne l'est pas.

> for (i in strsplit("A text I want to display with spaces", " ")) { print(i) }
[1] "A"       "text"    "I"       "want"    "to"      "display" "with"    "spaces" 

Ok, c'est logique ...

> for (i in strsplit("A text I want to display with spaces", " ")) { print(i=="want") }
[1] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE

Ok, ce trop. Mais, quel est le problème avec la construction suivante?

> for (i in strsplit("A text I want to display with spaces", " ")) { if (i=="want")     print("yes") }
Warning message:
In if (i == "want") print("yes") :
  the condition has length > 1 and only the first element will be used

Pourquoi n'est-il pas juste d'impression "oui" lors de la quatrième mot se rencontre? Que dois-je modifier pour avoir ce comportement souhaité?

OriginalL'auteur yossarian | 2011-10-30