私のデータフレームには、ダッシュで分割する列があり、ダッシュの左右に文字を含む行が重複しています。私は分割して複製する方法を知っていますが、文字列の一部を保持する方法を理解することはできません。かなりひどい記述 - データフレームと出力を表示するほうが簡単だと思います。R:行を分割して複製する
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
するか、少なくともそのように、 "オンス" とダッシュで分割さ
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
すべてのヘルプは大歓迎です!!:
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
私の所望の出力は次のようになります。
フォームのすべての行は、次のとおりです。
この関数は、3つ以上の数の仕様でも、文字列を扱うことができますか? – Stibu
"10パック14 - 16オンスCan"にすることもできます –