【发布时间】:2021-11-23 13:37:09
【问题描述】:
| order_id | product_name |
|---|---|
| 1 | The Ordinary - High-Adherence Silicone Primer - 30ml, The Ordinary - Natural Moisturizing Factors + HA 30ml |
| 2 | Sandal, Brown - 44 |
| 3 | Acetate - Square - Black - Transition - Sunglasses, Cartier - 8221 - Rim less - Green Double Shade - Sunglasses, Ray Ban - Aviator - Brown Double Shade - 3026 - Diamond Hard - Unbreakable lens, Burberry - 2A357 - Havana - Aviator - Sunglasses, Acetate - Square - Black - Transition - Sunglasses, Cartier - 8221 - Rim less - Green Double Shade - Sunglasses, Ray Ban - Aviator - Brown Double Shade - 3026 - Diamond Hard - Unbreakable lens, Burberry - 2A357 - Havana - Aviator - Sunglasses |
| 4 | NasGas Instant Geyser DG6L, NasGas Instant Geyser DG6L, NasGas Instant Geyser DG6L |
| 5 | Mpow Flame Solo Bluetooth Earbuds, Punchy Bass IPX7 Waterproof In Ear Wireless Earphones Bluetooth Headphones, USB-CFast ChargingBT5.028H Playtime Built-in Mic for Running Workout, Mpow Flame Solo Bluetooth Earbuds, Punchy Bass IPX7 Waterproof In Ear Wireless Earphones Bluetooth Headphones, USB-CFast ChargingBT5.028H Playtime Built-in Mic for Running Workout |
上图是数据集中的一组产品样本。这就是项目在数据库中的存储方式。
考虑订单 ID 3: 第一项是醋酸纤维……第二项是 Cartier……第三项 Burberry……然后,这些物品只重复两次,在某些物品情况下(订单 ID 4)重复三次。我需要删除这个重复。在这种情况下,分隔符是逗号。
其次:
考虑订单 id 4:这里我不能用逗号分隔项目,因为第一个产品项目在 Workout 结束并且在一个产品项目描述中有逗号
我之前使用的是以下代码
data.frame(tran_pay4) %>%
mutate(product_name = str_extract_all(product_name, "((?!\\s)[^,]+)(?!.*\\1)"))
这适用于大多数购物车,但不适用于 case::order_id = 5 目标是保留单个产品项。
输出应如下所示:
| order_id | product_name |
|---|---|
| 1 | The Ordinary - High-Adherence Silicone Primer - 30ml, The Ordinary - Natural Moisturizing Factors + HA 30ml |
| 2 | Sandal, Brown - 44 |
| 3 | Acetate - Square - Black - Transition - Sunglasses, Cartier - 8221 - Rim less - Green Double Shade - Sunglasses, Ray Ban - Aviator - Brown Double Shade - 3026 - Diamond Hard - Unbreakable lens, Burberry - 2A357 - Havana - Aviator - Sunglasses |
| 4 | NasGas Instant Geyser DG6L |
| 5 | Mpow Flame Solo Bluetooth Earbuds Punchy Bass IPX7 Waterproof In Ear Wireless Earphones Bluetooth Headphones USB-CFast ChargingBT5.028H Playtime Built-in Mic for Running Workout |
请告诉我该怎么做?
【问题讨论】:
-
order_id= 1 是我希望我的项目集出现的方式
-
四点:请再看一遍你的帖子,改正错别字;例如,“第二项载体”应为“第二项
Cartier”。其次,发布可重复的数据。第三,准确说出你的目标是什么(这是缺失的!)。 Foruth,发布预期的输出。 -
添加了更改 - 请查看。
标签: r dplyr data-cleaning stringr data-wrangling