R 如何在不影响内存限制的情况下旋转大数据帧(或矩阵)?

R 如何在不影响内存限制的情况下旋转大数据帧(或矩阵)?,r,R,我有一个数百万行的数据框,代表购买产品的客户。我需要将其从长格式改为宽格式,以便每行表示客户购买每种产品的次数 例如,这将创建一个模拟数据集 # Create mock dataset of 1 million customers and thousands of products. df <- data.frame(cust = 1:1e6) products = paste0(sample(letters, 1e6, replace = T), " - ",

我有一个数百万行的数据框,代表购买产品的客户。我需要将其从长格式改为宽格式,以便每行表示客户购买每种产品的次数

例如,这将创建一个模拟数据集

# Create mock dataset of 1 million customers and thousands of products.
df <- data.frame(cust = 1:1e6)
products = paste0(sample(letters, 1e6, replace = T), " - ", 
                  sample(1:1000, 1e6, replace = T))
df$prod <- products
df$orders <- floor(rpois(1e6, 2))
如何在不影响内存限制的情况下旋转大数据帧(或矩阵)

结果数据应如下所示:

cust item1 item2 ...
1     0     2
2     4     0
...   ...   ...
1000000 0   1
  • 我不需要使用数据帧
  • 我不需要使用tidyverse;欢迎使用base R解决方案

如果您有内存问题,或许稀疏矩阵会有所帮助。这可能有点棘手,但我相信你能跟上这些小插曲

库(矩阵)

客户这正是我所需要的。谢谢你,亚当!一旦我有了足够的声誉,我会把它升级。
cust item1 item2 ...
1     0     2
2     4     0
...   ...   ...
1000000 0   1