Finde die wiederholten Zeichen in einer Sequenz in R

7

Zum Beispiel habe ich eine Zeichenfolge

%Vor%

Ich möchte zählen, wie oft CG wiederholt wurde. Wie mache ich das?

    
lgxqzz 15.01.2014, 20:41
quelle

6 Antworten

7

Sie können gregexpr verwenden, um die Positionen von "CG" in vec zu finden. Wir müssen prüfen, ob es eine Übereinstimmung gab ( -1 ). Die Funktion sum zählt die Anzahl der Übereinstimmungen.

%Vor%

Wenn Sie einen Vektor von Strings haben, können Sie sapply :

verwenden %Vor%

Wenn Sie eine Liste von Zeichenfolgen haben, können Sie unlist(vec) verwenden und dann die obige Lösung verwenden.

    
Sven Hohenstein 15.01.2014, 20:43
quelle
4

Das Bioconductor-Paket Biostrings hat eine matchPattern-Funktion

%Vor%

Beachten Sie, dass DNSstring_object die eingelesene FASTA-Sequenz mit der Biostring-Funktion readDNAStringSet oder readAAStringSet

ist     
JeremyS 16.01.2014 06:14
quelle
4

Verwende str_count von stringr . Es ist einfach zu merken und zu lesen, aber keine Basisfunktion.

%Vor%     
Hugh 08.04.2014 00:53
quelle
2

In der Basis R könnten Sie substring mit einer Schleife verwenden, um nach dem Vorkommen von CG

zu suchen %Vor%     
Rich Scriven 14.05.2014 16:43
quelle
1

Es könnte interessant sein, einen String-Bearbeitungsfunktionen-Benchmark durchzuführen

%Vor%

In diesem speziellen Beispiel sind dies die Ergebnisse. Fühlen Sie sich frei, hinzuzufügen oder zu ändern, was auch immer sie sind.     base_fun (df) = stringr_fun (df) & gt; stringi_fun (df)

BEARBEITEN: Die Suchmaschine in stringi 0.2-3 wurde drastisch verbessert. Neue Benchmarks (auf einer anderen Maschine):

%Vor%

Also haben wir stringi & lt; & lt; base = stringr

    
marbel 08.04.2014 00:26
quelle
0

Verwenden Sie stri_count_fixed aus dem String-Paket

%Vor%     
bartektartanus 26.03.2014 12:11
quelle

Tags und Links