gpt4 book ai didi

r - 为什么 R 数据集比从 R 写入但从 Stata 读取的 Stata 数据集占用更多内存

转载 作者:行者123 更新时间:2023-12-02 07:26:12 25 4
gpt4 key购买 nike

考虑以下 R 数据集。

object.size(mtcars)
6736 bytes

#writing this object as rds

write.rds(mtcar,"mt.rds")

#properties of the file shows it as 1.218 KB
#reading back rds file

dataRDS<-read.rds("mt.rds")
object.size(dataRDS)
6736 bytes #this is the same as original mtcars (not surprising)

#writing this object as Stata data

write.dta(mtcars,"mt.dta")
#clicking the properties of file shows the size as 4.5 KB
#reading back Stata data in R

dataDTA<-read.dta("mt.dta")
object.size(dataDTA)
8656 bytes

# this is larger than the original file size

#reading Stata data from Stata gives the size as 2.82 KB


obs: 32 Written by R.
vars: 11
size: 2,816

为什么默认 R 对象在从 R 读取时比在 Stata 中读取从 R 转换为 Stata 数据的相同数据集占用更多内存?

最佳答案

大部分似乎是 attributes 的大小不同,您可以看到它们的存储方式不同。并比较大小,

> object.size(attributes(dataDTA)) - object.size(attributes(dataRDS))
1696 bytes

> object.size(dataDTA) - object.size(dataRDS)
1920 bytes

差异可能是由于 object.size 是对真实大小的估计。

关于r - 为什么 R 数据集比从 R 写入但从 Stata 读取的 Stata 数据集占用更多内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31195277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com