2016-09-22 9 views
0

以下は私のコードの一部です。ご覧のとおり、文字列といくつかのメタ文字を削除しようとしています。私はこれを1行で行うことができる方法はありますか?私は、単語の機能の後に、開いたり閉じたりするシンボルを書くことで試しましたが、うまくいきません。複数の文字の置換R

{ 

    P1 <- gsub("function", "", deparse(s)[1]);   #removing the word "function" 
    P2 <- gsub("\\(", "", P1);       #removing open parenthesis 
    P3 <- gsub("\\)", "", P2);       #removing the close parenthesis 
    P4 <- gsub("\\s", "", P3);       #removing spaces 
    variables <- strsplit(P4,",");      #separating the variables 

} 
+0

これを再現可能な例にすることはできますか?データをdput()することができます。 –

答えて

0

gsubは正規表現をとることができます。

x <- "some_func function()" 
gsub("function|\\s|\\(|\\)", "", x) 

[1] "some_func" 

または削除するには、物事のベクトルがある場合::

to_remove <- c("function", "\\s", "\\(", "\\)") 
gsub(paste(to_remove, collapse = "|"), "", x) 
+0

助けてくれてありがとう! – CoEstud

0

たぶんない1行のソリューションをしかし、あなたは、このようなコードを簡素化することができます。

listToReplace <- c("function", "\\(", "\\s") 

string <- "function.... ...BBB((BBBB" 

gsub(paste(listToReplace,collapse="|"), "",  string) 
だからあなたのような何かを書くことができ
関連する問題