2016-05-26 27 views
0

に戻す母音を入れて、私は、文字列から母音を削除しています:R:徐々に文字列

> gsub("\\B[A,E,I,O,U,a,e,i,o,u]+", "", "string.example") 
[1] "strng.exmpl" 

この減少した文字列は11の文字が含まれています。のは、私も12文字のためのスペースを持っているので、私は、文字列に戻すことが最初の母音をしたいとしましょう:

> MyFunction(string="string.example", maxchar=12) 
[1] "string.exmpl" 

それともmaxchar個= 13で、私は次の母音があまりにもに戻すことにしたい。

> MyFunction(string="string.example", maxchar=13) 
[1] "string.exampl" 

など。どのように私の弦が欲しいと思うかに関して、母音を徐々に戻すことができますか?

答えて

1
MyFunction <- function(string = 'string.example', maxchar = 12){ 

    originalLength <- nchar(string) 

    while(nchar(string) > maxchar){ 
    # remove last vowel 
    newstring <- gsub("(.*)[A,E,I,O,U,a,e,i,o,u](.*)", "\\1\\2", string) 

    # If you run out of vowels to remove, error 
    if(nchar(newstring) == nchar(string)) stop('No more vowels to remove but string still longer than maxchar') 

    string <- newstring 

    #print(string) 
    } 

    return(string) 
} 

あなたが望むものではないと思いますが、私はmaxcharが母音のない文字列よりも短い場合を扱う小切手を追加しました。

関連する問題