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.
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.
Hier ist noch eine andere Lösung, mit einem regulären Ausdruck, um zu erfassen, was vor und nach dem ersten Komma ist.
%Vor% 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 )))
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%