2016-06-17 2 views
1

im traitant if dans R et je suis aux prises avec l'un des exemples typiques: vérifier si c'est une voyelle = VRAI et FAUX Autrement.R: Une fonction pour dire si un seul char est voyelle ou non

if.function <- function(char){ 
    if (char=('a') or ('e') or ('i') or ('o') or ('u')) 
    { 
    return(TRUE) 
    } else if (char == 0){ 
    return(FALSE) 
    } 

Quelqu'un pourrait-il me donner un coup de main? * vu d'autres exemples avec python et java, mais je sais à peine comment utiliser juste R.

+3

L'utilisation de '% in%' est la méthode R canonique (voir 'help ("% in% ")' pour des exemples). Pour traduire la logique en une instruction logique "standard", utilisez 'if (char == ('a') || char == ('e') || char == ('i') || char == ('o') || char == ('u')) '. Vous pouvez voir pourquoi "% in%" est préféré. – lmo

+0

'grepl (char, '[aeiou]')' – rawr

Répondre

4

char=('a') or ('e') or ('i') or ('o') or ('u') est illégale. Essayez

isVowel <- function(char) char %in% c('a', 'e', 'i', 'o', 'u') 

Essayons:

isVowel('a') 
# [1] TRUE 
isVowel('b') 
# [1] FALSE 

Notez que je ne l'ai pas utiliser l'opérateur '||':

char == 'a' || char == 'e' || char == 'i' || char == 'o' || char == 'u' 

car cela est trop long. Je l'ai utilisé

char %in% c('a', 'e', 'i', 'o', 'u') 

Cela donnera TRUE si char est l'une des 'a', 'e', 'i', 'o', 'u'.

+2

Vous n'avez pas vraiment besoin de 'if' ou' else'; '% in%' va vous donner 'TRUE' et' FALSE' déjà. – alistaire

+0

ohh je le vois maintenant, merci beaucoup bro – Jess1