巨大的数据框传播

Huge dataframe to spread

我有一个巨大的 df,尺寸为 (58556185 X 2)

user page  like
  1    A    1
  1    B    1
  1    C    1
  2    A    1
  2    C    1
  3    B    1
  .    .    .

唯一用户和唯一页面分别为 100,000 和 50,000 我想把它传播到

user/page
   A   B   C ...
1  1   1   0 ...
2  1   0   1 ...
3  0   1   0 ...
.
.

我使用过这段代码,它适用于小型数据集

data <- data%>%
  group_by(user)%>%
  spread(page, like, fill = 0, drop = TRUE)

但是当应用到巨大的df时,它出来了Error: cannot allocate vector of size 21626.2 Gb

有什么建议吗?谢谢

我用稀疏矩阵来解决这个问题

mat <- sparseMatrix(as.integer(factor(data.fbpage$uid)) ,as.integer(factor(data.fbpage$pageId)), x=data.fbpage$like)