传播的巨大数据帧

时间:2017-03-31 06:27:31

标签: r tidyr 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

有什么建议吗?感谢

1 个答案:

答案 0 :(得分:1)

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

handleMouseOver() {
   this.setState({imageSrc: 'dummySrc1'});
}

handleMouseLeave() {
   this.setState({imageSrc: 'dummySrc2'});
}

render() {
    return(
        <div onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave}>
             <img src={this.state.imageSrc}/>
        </div>
    );
}