2

我有一个巨大的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

有什么建议么?谢谢

4

1 回答 1

1

我已经使用稀疏矩阵来解决这个问题。

mat <- sparseMatrix(as.integer(factor(data.fbpage$uid)) ,as.integer(factor(data.fbpage$pageId)), x=data.fbpage$like)
于 2017-04-11T06:45:26.720 回答