2016-11-11 4 views
-1

Ich habe diese Zeichenfolge, zum Beispiel:Wie kann ich einen Teilstring in R extrahieren?

str1 = "UNCID_999277.TCGA-CV-7254-01A-11R-2016-07.111118_UNC11-SN627_0167_AD09WDACXX_TAGCTT.txt" 

würde Ich mag diese Teilkette extrahieren, zum Beispiel:

TCGA-CV-7254 

ich etwas Link versucht, dieses:

gsub(pattern = "(*.)(TCGA*)(.*)", 
    replacement = "\\2", 
    x = nameArq) 

Aber es Rückkehr:

[1] "UNCID_999277TCGA" 

Danke für jede Hilfe!

+0

'*' ist ein Quantifizierer, was bedeutet, dass der vorhergehende Token von Null bis unendlich wiederholt wird. Da es hinter "A" steht, sucht es nach mehreren 'A's. Sie benötigen stattdessen einen Quantifizierer für ein Platzhalter-Token '.'. – alistaire

+0

* Ich möchte diesen Teilstring extrahieren, zum Beispiel * - und was ist daran so spezifisch? Wie können wir Ihnen helfen, wenn Sie die Anforderungen nicht erklären? –

Antwort

1

Sie hatten es fast. In den ersten Klammern muss der Punkt zuerst stehen (das bedeutet "beliebig viele Zeichen wiederholen"). Sie benötigen auch einen eindeutigen Endpunkt für den zweiten Teil Ihrer Regex.

gsub(pattern = "(.*)(TCGA.*4)(.*)", 
    replacement = "\\2", 
    x = str1) 
Verwandte Themen