【发布时间】:2019-04-08 23:12:34
【问题描述】:
我有一个格式如下的数据框:
Order# Product
1 Milk
1 Water
2 OJ
3 Soda
3 Lemonade
我想重新格式化,以便每个订单有 1 行,每个产品作为一列,以及一个二进制文件来指示该订单是否包含该列中的产品:
Order# Lemonade Milk OJ Soda Water
1 0 1 0 0 1
2 0 0 1 0 0
3 1 0 0 1 0
我相信 reshape2 或 tidyverse 是我可以使用的软件包,但我不确定。任何有关如何执行此操作的帮助将不胜感激。
【问题讨论】:
-
只做
table(df1)如果'Product'中有重复,那么+(table(df1) > 0) -
真正的数据框有 130,000 多个订单和 153 个独特的产品。 table(df1) 给了我一个错误:“尝试使用 >= 2^31 个元素制作表格”
-
好的,你能在新的 R 会话上做
library(data.table);dcast(setDT(df1), Order# ~ Product)
标签: r