Wie können Frequenzen eines bestimmten Zeichens in einer Zeichenkette gezählt werden?

8

Wenn ich eine Reihe von Zeichen wie "AABBABBBAAAABBAAAABBBAABBBBABABB" habe.

Gibt es eine Möglichkeit, R dazu zu bringen, die Läufe von A zu zählen und anzugeben, wie viele von jeder Länge?

Also würde ich gerne wissen, wie viele Instanzen von 3 A in einer Reihe sind, wie viele Instanzen einer einzelnen A , wie viele Instanzen von 2 A in Folge usw.

    
user3754366 24.06.2015, 09:55
quelle

4 Antworten

10
%Vor%

gibt

%Vor%

was (in der A-Spalte) bedeutet, dass es 3 A-Läufe der Länge 1, 2 A Läufe der Länge 2 und 2 A Läufe der Länge 4 gab.

    
Glen_b 24.06.2015 11:00
quelle
10

Versuchen Sie

%Vor%

Oder

%Vor%

Benchmarks

%Vor%

Daten

%Vor%     
akrun 24.06.2015 10:19
quelle
8

Hier ist ein zusätzlicher Weg mit strsplit

%Vor%

Oder ähnlich mit dem stringi -Paket

%Vor%     
David Arenburg 24.06.2015 10:26
quelle
3

Der Vollständigkeit halber ist hier eine andere Möglichkeit, mit den Kombinationen regmatches und gregexpr Extrakte zu extrahieren:

%Vor%

Oder, in der Tat, da gregexpr die Länge des erfassten Teilstrings als Attribut behält, könnte man sogar direkt tun:

%Vor%     
plannapus 24.06.2015 11:35
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ answer37507972 ___

Dasselbe Problem tritt auf, wenn eine Zeichenfolge in einen Integer-Typ umgewandelt wird.

%Vor%

Wenn jedoch eine Zahl innerhalb der Zeichenfolge angegeben wird.

%Vor%

Um das Problem zu beheben, verwenden Sie %code% für die Spalte, was auch dazu führt, dass der Textwert die Groß- / Kleinschreibung beachtet.

%Vor%     
___ qstntxt ___

Ich habe eine Tabelle namens %code% , die folgendermaßen aussieht:

Auf dem ich Abfrage wie folgt ausführen:

%Vor%

Diese Abfrage ist nicht sinnvoll, weil %code% column% %code% type ist und ich in meiner Abfrage nach %code% value suche, aber %code% gibt immer noch keine leeren Zeilen zurück. Hier ist welche Abfrage zurückgegeben: Daher enthält %code% row in keiner der zurückgegebenen Zeilen %code% value. Wie kann das möglich sein?

    
___ answer37507859 ___

"männlich" ist 0! Du erhältst also Aufzeichnungen, in denen das Alter 0 ist. Um wirklich zu verstehen, was gerade passiert, tu folgendes:

%Vor%

Ihre dritte Spalte ist 1 für die Datensätze mit dem Alter "0" und "0" für die Datensätze mit einem Alter ungleich null.

    
___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ answer37507775 ___

Versuchen Sie diese einfache Abfrage:

%Vor%

Das scheint keinen Sinn zu ergeben. Die Abfrage wird jedoch ausgeführt und gibt den Wert %code% zurück. Dies liegt an der impliziten Typkonvertierung . Der String-Wert %code% wird in %code% konvertiert und dann zu %code% hinzugefügt. Daher wird %code% zurückgegeben.

Das Gleiche passiert mit Ihrer Anfrage. %code% in %code% konvertiert im Vergleich zu einem Feld vom Typ %code% .

    
___ tag123mysql ___ MySQL ist ein freies, relationales Datenbank-Managementsystem (RDBMS), das die strukturierte Abfragesprache (SQL) verwendet. Verwenden Sie dieses Tag NICHT für andere DBs wie SQL Server, SQLite usw. Dies sind verschiedene DBs, die alle SQL verwenden, um die Daten zu verwalten. ___ answer37508041 ___
  
    

Das Problem hier ist, dass, wenn Sie versuchen, eine Zeichenfolge mit einer Ganzzahlspalte zu vergleichen, der Wert in den Datentyp der Spalte umgewandelt wird. Derselbe Fall wird mit float, big int, tiny int usw. auftreten.

  

Welcher Wert auch immer im Vergleich übergeben wird, wird zuerst von der mysql-Engine für diesen bestimmten Datentyp umgesetzt

Hier ist das Testergebnis der Abfrage, die wenige Werte ausgibt.

%Vor%

%Vor%

Das flt hat eine Spalte vom Typ float.

    
___