巨大的数据框传播
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)
我有一个巨大的 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)