Erstellen Sie neue Spalte im dataframe basiert auf Teil-Zeichenkette andere Spalte
Ich habe einen dataframe mit 2 Spalten GL
und GLDESC
und wollen, fügen Sie eine 3. Säule genannt KIND
auf Grundlage einiger Daten, die in der Spalte GLDESC
.
Den dataframe ist wie folgt:
GL GLDESC
1 515100 Payroll-Indir Salary Labor
2 515900 Payroll-Indir Compensated Absences
3 532300 Bulk Gas
4 539991 Area Charge In
5 551000 Repairs & Maint-Spare Parts
6 551100 Supplies-Operating
7 551300 Consumables
Für jede Zeile der Daten-Tabelle:
- Wenn
GLDESC
enthält das WortPayroll
überall in der Zeichenfolge, dann will ichKIND
zuPayroll
- Wenn
GLDESC
enthält das WortGas
überall in der Zeichenfolge, dann will ichKIND
zuMaterials
- In allen anderen Fällen möchte ich
KIND
zuOther
Suchte ich nach ähnlichen Beispielen auf stackoverflow konnte aber keine finden, auch sah in R
für dummies on-Schalter, grep, anwenden und reguläre Ausdrücke, um zu versuchen und passen nur ein Teil der GLDESC
Spalte und füllen Sie dann die KIND
Spalte mit der Art des Kontos aus, aber war nicht in der Lage, damit es funktioniert.
InformationsquelleAutor der Frage user2948714 | 2013-11-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da hast du nur zwei Bedingungen verwenden, können Sie eine verschachtelte
ifelse
:BEARBEITEN 10/3/2016 (..nach dem Empfang von mehr Aufmerksamkeit als erwartet)
Eine mögliche Lösung zum Umgang mit mehr Muster sein könnte, zu iterieren über alle Muster und, Wann immer es passen, schrittweise Verringerung der Menge der Vergleiche:
InformationsquelleAutor der Antwort alexis_laz