Auf das erste Komma in der Zeichenfolge aufgeteilt

8

Wie kann ich die folgende Zeichenfolge effizient auf das erste Komma unter Verwendung der Basis aufteilen?

%Vor%

Gewünschtes Ergebnis (2 Strings):

%Vor%

Vielen Dank im Voraus.

EDIT: Dachte nicht, das zu erwähnen. Dies muss in der Lage sein, zu einer Spalte, einem Vektor von Strings wie diesem, zu generalisieren:

%Vor%

Das Ergebnis kann zwei Spalten oder ein langer Vektor sein (den ich jedes andere Element nehmen kann) oder eine Liste von Stichen mit jedem Index ([[n]]) mit zwei Strings.

Entschuldigung für den Mangel an Klarheit.

    
Tyler Rinker 25.04.2012, 03:51
quelle

5 Antworten

11

Folgendes würde ich wahrscheinlich tun. Es mag hacky aussehen, aber da sub() und strsplit() beide vektorisiert sind, wird es auch reibungslos funktionieren, wenn mehrere Strings übergeben werden.

%Vor%     
Josh O'Brien 25.04.2012, 04:23
quelle
8

Aus dem Paket stringr :

%Vor%

(Das ist eine Matrix mit einer Zeile und zwei Spalten.)

    
flodel 25.04.2012 04:40
quelle
3

Hier ist noch eine andere Lösung, mit einem regulären Ausdruck, um zu erfassen, was vor und nach dem ersten Komma ist.

%Vor%     
Vincent Zoonekynd 25.04.2012 13:52
quelle
2

library(stringr)

str_sub(x,end = min(str_locate(string=x, ',')-1))

Dies wird das erste Bit erhalten, das Sie wollen. Ändere start= und end= in str_sub , um zu bekommen, was du sonst noch willst.

Wie:

str_sub(x,start = min(str_locate(string=x, ',')+1 ))

und wrap in str_trim , um den führenden Platz loszuwerden:

str_trim(str_sub(x,start = min(str_locate(string=x, ',')+1 )))

    
John 25.04.2012 04:06
quelle
2

Das funktioniert, aber ich mag Josh Obrien's besser:

%Vor%

Inspiriert von der Reaktion der Jagd.

Eine Anzahl von Leuten gab Nichtbasisansätze an, also denke ich, dass ich die eine hinzufügen würde, die ich normalerweise verwende (obwohl in diesem Fall ich eine Basisantwort brauchte):

%Vor%     
Tyler Rinker 25.04.2012 04:30
quelle

Tags und Links