2016-06-17 117 views
1

即时处理R中的if我正在努力处理一个典型的例子:检查它是否为元音= TRUE和FALSE否。R:判断一个字符是否为元音的函数

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

有人能帮我一把吗? *用python和java看了其他例子,但我几乎不知道如何使用R。

+3

使用'%in%'是规范的R方法(有关示例,请参阅'help(“%in%”)')。要将逻辑转换为“标准”逻辑语句,可使用if(char ==('a')|| char ==('e')|| char ==('i')|| char == 'o')|| char ==('u'))'。你可以看到为什么'%in%'是首选的。 – lmo

+0

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

回答

4

char=('a') or ('e') or ('i') or ('o') or ('u')是非法的。尝试

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

让我们试一下:

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

请注意,我没有使用或操作'||'

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

,因为这是太长。我已经使用

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

这会给TRUE如果char是任何的'a', 'e', 'i', 'o', 'u'

+2

你并不需要'if'或'else'; '%in%'会给你'TRUE'和'FALSE'。 – alistaire

+0

哦,我现在看到它,谢谢很多兄弟 – Jess1

相关问题