2016-09-22 5 views
0

Unten ist der Teil meines Codes und wie Sie sehen können, versuche ich Zeichenfolge und einige Metazeichen zu entfernen. Gibt es einen Weg, wie ich diesen Ersatz in nur einer Linie machen könnte? Ich habe es versucht, indem ich die Symbole für die offene und geschlossene Parethesis nach der Wortfunktion geschrieben habe, aber es funktioniert nicht.Ersetzen mehrerer Zeichen in 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

Könnten Sie das zu einem reproduzierbaren Beispiel machen? Sie könnten Ihre Daten "ausgeben"(). –

Antwort

0

gsub kann reguläre Ausdrücke nehmen. So könnte man so etwas wie schreiben:

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

[1] "some_func" 

Oder wenn Sie einen Vektor der Dinge zu entfernen:

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

Danke für Ihre Hilfe! – CoEstud

0

Vielleicht nicht eine Zeile Lösung aber Sie können den Code wie folgt vereinfachen:

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

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

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