如何解读object.size的单位?MB与Mb参数为何输出一致?
关于R中
object.size的format参数单位问题 已知object.size的文档说明其format参数可接受“MB”或“Mb”作为输入,其中大写“B”代表字节(byte),小写“b”代表比特(bit)。但实际调用时,传入这两个参数得到的结果完全相同,且结果单位显示为“Mb”。想确认该函数是否真的区分比特和字节,还是应该将所有结果视为字节,忽略小写的“b”?
测试代码:
x <- runif(1e6) format(object.size(x), "Mb") #> [1] "7.6 Mb" format(object.size(x), "MB") #> [1] "7.6 Mb"
实际上,R的format.object.size函数(即处理object.size结果的格式化函数)不区分大写“B”和小写“b”的单位输入,所有带“B/b”的单位都会被当作字节(byte)来计算。
你看到的结果统一显示为“Mb”只是输出格式的统一处理,但实际计算逻辑都是基于字节:
- 1 MB(兆字节)= 1 Mb(函数实际处理为兆字节)= 1024 * 1024 字节(若设置
standard="SI"则为1000进制,本质仍为字节单位) - 函数并未实现比特(bit)的计算逻辑,文档里的“Mb”属于表述不严谨,实际所有带“B/b”的参数都对应字节单位。
简言之:不管传“MB”还是“Mb”,函数都按字节计算,结果里的“b”只是输出格式,无需当作比特理解。
内容的提问来源于stack exchange,提问作者Arthur
相关产品推荐
相关产品推荐

