Mein Datenrahmen hat Spalten, die ich durch Bindestriche teilen möchte, doppelte Zeilen mit Zeichen links und rechts von Bindestrichen. Ich weiß, wie man spaltet und dupliziert, kann aber nicht herausfinden, wie man Teile von Strings behält. Ziemlich schreckliche Beschreibung - Ich denke, es ist einfach, den Datenrahmen und die gewünschte Ausgabe zu zeigen.R: Teilen und Duplizieren einer Zeile
tmp = structure(list(Unit.Types = c("10 - 12 Pack 11.2 - 14.9 oz Bottle or Can",
"8 - 12 Pack 11.5 - 16 oz Bottle or Can"), Row.Count = c("899",
"305"), Test = c("B", "A")), .Names = c("Unit.Types", "Row.Count",
"Test"), row.names = c(104L, 196L), class = "data.frame")
library(tidyr)
library(dplyr)
tmp2 = tmp %>% mutate(Unit.Types = strsplit(as.character(Unit.Types), "-")) %>% unnest(Unit.Types)
tmp2
Row.Count Test Unit.Types
1 899 B 10
2 899 B 12 Pack 11.2
3 899 B 14.9 oz Bottle or Can
4 305 A 8
5 305 A 12 Pack 11.5
6 305 A 16 oz Bottle or Can
Meine gewünschte Ausgabe sollte wie folgt aussehen:
Unit.Types Row.Count Test
1 10 Pack 11.2 oz Bottle or Can 899 B
2 10 Pack 14.9 oz Bottle or Can 899 B
3 12 Pack 11.2 oz Bottle or Can 899 B
4 12 Pack 14.9 oz Bottle or Can 899 B
5 8 Pack 11.5 oz Bottle or Can 305 A
6 8 Pack 16 oz Bottle or Can 305 A
7 12 Pack 11.5 oz Bottle or Can 305 A
8 12 Pack 16 oz Bottle or Can 305 A
Oder zumindest so, durch Strich geteilt mit "oz"
Unit.Types Row.Count Test
1 10 - 12 Pack 11.2 oz Bottle or Can 899 B
2 10 - 12 Pack 14.9 oz Bottle or Can 899 B
3 8 - 12 Pack 11.5 oz Bottle or Can 305 A
4 8 - 12 Pack 16 oz Bottle or Can 305 A
Jede Hilfe wird sehr geschätzt !!
Sind alle Zeilen der Form:
Diese Funktion kann auch Strings mit drei oder mehr Zahl Spezifikationen umgehen? – Stibu
Kann auch "10 Pack 14 - 16 Unzen kann" –