R中的多字符替换

时间:2016-09-22 15:34:38

标签: r

以下是我的代码的一部分,正如您所看到的,我正在尝试删除字符串和一些元字符。有没有办法可以在一行中完成这个替换?我尝试在单词功能之后编写用于打开和关闭parethesis的符号,但它不起作用。

{

    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

}

2 个答案:

答案 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)

答案 1 :(得分:0)

也许不是一行解决方案,但你可以像这样简化代码:

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

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

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