I eine Tabelle mit einer Zeichenfeld haben, die einem dieser Muster haben kann:Spliting String mit einem bestimmten Muster
input
97 # a single number
210 foo # a number and a word
87 bar 89 # a number, a word, a number
21 23 # two numbers
123 2 fizzbuzz # two number, a word
12 fizz 34 buzz # a number, a word, a number, a word
Ich möchte aufzuspalten jede Zeile bis zu 4 Teilen, enthalten, jeweils the first number
, the first word
Wenn es existiert, the second number
wenn es existiert, und the second word
wenn es existiert. So würde mein Beispiel:
input nb_1 word_1 nb_2 word_2
97 97
210 foo 210 foo
87 bar 89 87 bar 89
21 23 21 23
123 2 fizzbuzz 123 2 fizzbuzz
12 fizz 34 buzz 12 fizz 34 buzz
Bitte beachten Sie, den Fall two number, a word
(das Beispiel vor dem letzten): es hat nichts in word_1
da kein Wort zwischen den beiden Zahlen.
Gibt es eine Möglichkeit, dies ohne eine lästige if/if/else Struktur zu tun?
Wenn es helfen kann, gehören alle Wörter zu einer Liste von 10 spezifischen Wörtern. Wenn zwei Wörter vorhanden sind, können sie gleich oder verschieden sein. Außerdem können die Nummern eine, zwei oder drei Ziffern lang sein.
Dank
Verwenden Sie 'dput', um das Beispiel anzuzeigen. Ist es eine einzelne Zeichenfolge oder zwei Spalten in einem dat.frame dh '" eine einzige Zahl: 97 "' – akrun
Entschuldigung, es war nur, um das Muster anzuzeigen, änderte ich die Frage in einer hoffentlich klareren Weise –