我有一个相当大的数据集(470万行和42个变量)。当我试图将其保存到正在使用的共享驱动器时
saveRDS
Windows会抛出错误消息,但较小的数据集保存时不会出现问题。为了回应这个问题,我决定规范化我的数据,并保存相关维度和事实数据。
在提取定义数据的一个维度的列之后,我的下一步是使用
unique
,但执行
dim_data <- unique(dim_data)
导致会话挂起很长时间,然后返回错误消息
错误:内存耗尽(达到限制?)
wrapup期间出错:无法分配大小为127.6 Mb的向量
(我的机器有16 GB内存)。
在尝试之前,我和它搏斗了一段时间
dim_data <- as.data.table(dim_data)
dim_data <- unique(dim_data)
此时,第二行立即成功执行。
我很高兴能有一个解决方案,我知道
唯一的
被称为
depending on the class of its argument
但是,是什么原因导致了
唯一的
当应用到超过一定大小的数据帧时,是否还要完成计算?基本实现是否非常低效?如果是,这是已知的,并且计划进行修复(我找不到关于
唯一的
)? 相反,它与数据关系不大。表函数的实现和更多关于数据的信息。表对象在幕后被更智能地存储?