我找不到任何关于这个问题的信息,也不确定我能用哪些关键词搜索,如果这是重复内容,请见谅。
我在我的工作区中有一些数据表列表,如下所示:
> lsos()
Type Size PrettySize Rows Columns
all_subsets list 46673512 44.5 Mb 3 NA
glm_Macro.part_1 list 15817064 15.1 Mb 2 NA
glm_Macro.part_2 list 15817064 15.1 Mb 2 NA
glm_Macro.part_3 list 15289864 14.6 Mb 2 NA
接下来我需要把列表中的最后三个项目保存在磁盘上。我只需使用save()
函数和.rda
扩展名就可以完成,例如:
save(glm_Macro.part_1, file = "glm_Macro.part_1.rda")
然而,在磁盘上查看,这三个文件的大小分别为270.7、268.8和262.6 MB。这是原来的约18倍。
这是有已知原因的吗?
我唯一的猜测是data.table
使用引用的方式,这意味着数据不会被复制,而只是从原始数据集中引用。在这里可以看到这种方式的示例。所以当我将数据保存到磁盘时,也许它会强制复制所有的数据表,而在R工作区内部进行引用已经足够了。
终端、Rstudio和ESS(Emacs)在工作空间中显示相同的大小,所以似乎与环境无关。
lsos()
函数是什么意思?为什么“Columns”列是NA?为什么“Type”列是list
而不是data.table
?看起来第2和第3行是非常小的表格,所以要达到44Mb的大小,是否有大量的列? - Matt Dowlestr(DT)
提供列类型对于入门者来说是可以的。 - Matt Dowle