Ich habe versucht, eine durch Leerzeichen getrennte Zeichenfolge in R für einige Zeit mit doppelten Anführungszeichen zu teilen, aber ohne Erfolg. Ein Beispiel für eine Zeichenfolge ist wie folgt:
Regen Schneefall "Kanalspeicher" "Rivulet Speicher"
Es ist wichtig für uns, denn dies sind Spaltenüberschriften, die mit den nachfolgenden Daten übereinstimmen müssen. Es gibt andere Vorschläge auf dieser Seite, wie man das macht, aber sie scheinen nicht mit R zu arbeiten. Ein Beispiel:
Hier ist ein Code, den ich versucht habe:
%Vor%Was ich möchte ist
%Vor%aber was ich bekomme ist:
%Vor%Der Vektor hat die richtige Länge (was ermutigend ist), aber natürlich sind die Strings leer oder enthalten ein einzelnes Leerzeichen. Irgendwelche Vorschläge?
Vielen Dank im Voraus!
Wie mplourde sagte, benutze scan
. Das ist bei weitem die sauberste Lösung (es sei denn, Sie möchten \"
behalten, das ist ...)
Wenn Sie Regexes dazu verwenden wollen (oder etwas, das nicht so einfach von scan
gelöst wird), dann sehen Sie es immer noch falsch an. Deine Regex gibt zurück, was du willst. Wenn du das also in deinem strsplit
verwendest, wird alles abgeschnitten, was du behalten willst.
In diesen Szenarien sollten Sie sich die Funktion gregexp
ansehen, die die Startpositionen Ihrer Matches zurückgibt und die Länge des Matches als Attribut hinzufügt. Das Ergebnis davon kann wie folgt an die Funktion regmatches()
übergeben werden:
Aber wenn Sie nur den Zeichenvektor benötigen, wie die Lösung von mplourde zurückkehrt, gehen Sie dafür. Und das ist wahrscheinlich das, wonach Sie suchen.
Sie können strapply aus dem Paket gsubfn verwenden. In strapply können Sie eine übereinstimmende Zeichenfolge anstelle einer Teilungszeichenfolge definieren.
%Vor%