2016-09-22 76 views
0

下面是我的代碼的一部分,正如您所看到的,我試圖刪除字符串和一些元字符。有沒有一種方法可以在一行中完成這種替換?我試圖通過在單詞函數之後編寫開放和關閉的parethesis的符號,但它不起作用。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

你可以把它變成一個可重複的例子嗎?你可以輸入()你的數據。 –

回答

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

也許不是一條線解決方案,但可以簡化這樣的代碼:

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

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

gsub(paste(listToReplace,collapse="|"), "",  string)