2016-06-17 56 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

相關問題