【发布时间】:2017-03-31 06:27:31
【问题描述】:
我有一个巨大的 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
有什么建议吗?谢谢
【问题讨论】:
-
有很多关于如何处理这个问题的帖子。 Did you google ?.
-
您计算出您的扩展矩阵将有多少行
(length(unique(df$user)))和多少列(length(unique(df$page)))?我不确定你是否真的想要那个。 -
这不是一个好主意。生成的对象将是巨大的。考虑改用
sparseMatrix。看到这个问:stackoverflow.com/questions/33457501/… -
最终输出将是一个 100000 * 50000 的数据帧