【发布时间】:2023-03-06 12:09:01
【问题描述】:
我目前正在学习使用 data.frame 并且对如何重新排序它们感到很困惑。
目前,我有一个 data.frame 显示:
- 第 1 栏:商店名称
- 第 2 栏:产品
- 第3栏:本店购买该商品的次数
或者在视觉上是这样的:
+---+-----------+-------+----------+--+
| | Shop.Name | Items | Product | |
+---+-----------+-------+----------+--+
| 1 | Shop1 | 2 | Product1 | |
| 2 | Shop1 | 4 | Product2 | |
| 3 | Shop2 | 3 | Product1 | |
| 4 | Shop3 | 2 | Product1 | |
| 5 | Shop3 | 1 | Product4 | |
+---+-----------+-------+----------+--+
我想要实现的是以下“以商店为中心”的结构:
- 第 1 栏:商店名称
- 第 2 栏:为 product1 出售的商品
- 第 3 栏:为 product2 出售的商品
- 第 4 栏:为 product3 出售的商品 ...
当没有特定商店/产品的行时(因为没有销售),我想创建一个 0。
或
+---+-------+-------+-------+-------+-------+-----+--+--+
| | Shop | Prod1 | Prod2 | Prod3 | Prod4 | ... | | |
+---+-------+-------+-------+-------+-------+-----+--+--+
| 1 | Shop1 | 2 | 4 | 0 | 0 | ... | | |
| 2 | Shop2 | 3 | 0 | 0 | 0 | ... | | |
| 3 | Shop3 | 2 | 0 | 0 | 1 | ... | | |
+---+-------+-------+-------+-------+-------+-----+--+--+
【问题讨论】:
-
查看reshape2包中的
reshape或dcast函数。 -
stackoverflow.com/a/9617424/210673 有很多方法可以做到这一点。