【问题标题】:R loop a spred over listR循环一个扩展列表
【发布时间】:2020-07-02 11:00:15
【问题描述】:

A 嘿,我有一个庞大的数据集,我正试图在 R 中传播,但我一直在用尽内存,所以试图分解它并编写一段有效的代码来循环下面的列表示例结构。我知道#这对于了解这些功能并感谢任何建议的人来说非常容易。

rs <- split(r,1:3)

然后按如下方式展开列表,但这样做效率很高,因为可能会有大量列表

rs$'1' <- rs$'1' %>% spread(movieId, resids)
rs$'2' <- rs$'2' %>% spread(movieId, resids)
rs$'3' <- rs$'3' %>% spread(movieId, resids)

【问题讨论】:

  • 你的数据集有多大?
  • 大约有 1000 万行,我猜传播函数相当昂贵
  • 残差有 7,198,397 个不同的值
  • 您能在问题中添加两件事吗? (i) object.size(r) 和 (ii) length(unique(r$movieId))?
  • 抱歉,我错了不是resid,而是movieId,这与不同的值有关。 (我会删除上面的评论)

标签: r tidyverse purrr


【解决方案1】:

考虑到上面的 cmets,我想说:

  1. 您的数据集不是太大。除非您的计算机是 1997 年的,否则 144 MB 完全可以处理。

  2. spread() 尝试创建一个包含 10.000 行的数据框。我想这就是原因,你的内存不足了。

结果是:您最终想对您的数据做什么。很可能您实际上不想做spread(),而是真的想做别的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2015-12-20
    • 2021-10-28
    • 2017-11-10
    • 2021-03-20
    • 1970-01-01
    相关资源
    最近更新 更多