使用RStudio:
a <- rep(1, 1e4)
b <- rep(1, 1e5)
Run Code Online (Sandbox Code Playgroud)
在环境窗格中,a并b显示不同的:
这是什么意思Large numeric?我曾经认为这意味着bR由一种特殊的方式处理,但使用str我看不到任何特别的东西.我也读过有关长矢量的信息,但似乎只有长度> = 2 ^ 31的矢量.
它是由RStudio添加的纯信息性注释,用于通知用户对象的内存大小大于任意限制吗?
这看起来像是大于半 MB 的对象的限定符。请参阅此处第 460 行。
Run Code Online (Sandbox Code Playgroud)# for large objects (> half MB), don't try to get the value, just show # the size. Some functions (e.g. str()) can cause the object to be # copied, which is slow for large objects. if (size > 524288) { len_desc <- if (len > 1) paste(len, " elements, ", sep="") else "" # data frames are likely to be large, but a summary is still helpful if (is.data.frame(obj)) { val <- "NO_VALUE" desc <- .rs.valueDescription(obj) } else { val <- paste("Large ", class, " (", len_desc, capture.output(print(size, units="auto")), ")", sep="") } contents_deferred <- TRUE }
根据评论,这可以防止以后的str()调用复制对象,从而提高大对象的性能。
这paste("Large", ...)调用创建修改后的描述。
在我的计算机上,这可以在这里演示:
small <- 1:131050
large <- 1:132000
object.size(small)
# 524240 bytes
object.size(large)
# 528040 bytes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |