首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中有效地存储嵌套数据?

如何在R中有效地存储嵌套数据?
EN

Stack Overflow用户
提问于 2022-01-27 12:46:40
回答 1查看 196关注 0票数 0

我想在R中操作、存储和检索嵌套数据,但令我惊讶的是,嵌套数据框架的大小有了大幅度的增加:

代码语言:javascript
复制
pacman::p_load(dplyr, tidytable)

test3 <- tibble(ID = 1:1e5) %>% 
  group_by(ID) %>% 
  summarise(number = 1:sample(1:4, size = 1), .groups = "drop") %>% 
  mutate(Date = sample(seq.Date(from = as.Date("2021-01-01"),
                                 to = as.Date("2021-12-31"), by = 1),
                        size = n(), replace = TRUE)) 

test4 <- test3 %>% nest_by(ID)

prettyNum(object.size(test3), big.mark = ",") 4 MB
prettyNum(object.size(test4), big.mark = ",") 132 MB

tidytable也存在同样的问题。

数据嵌套是一个很酷的想法,因为如果数据不是二维的,它有助于控制数据复制的问题。

但是内存的增加是有问题的。

此外,如果有嵌套列,write_fst拒绝写入数据,所以这里可能也需要一个不同的解决方案。

你有什么意见建议?

EN

回答 1

Stack Overflow用户

发布于 2022-01-27 23:49:32

简单的答案是不要嵌套数据。

可以有效地存储和检索数字数组,因为它们彼此接近,但是嵌套的数据在内存中传播,数据帧需要每个观察的地址来访问它们并检索值。换句话说,数字数组是单个对象,嵌套值数组是一个集合(在您的例子中是10^5)小对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70878796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档