考虑这个片段:
> a <- 1:1e7
> b <- 1:1e7
> (sizes <- sapply(c("a","b"),function(n) {
s <- object.size(get(n))
cat(n,": ")
print(s,units="auto")
}))
a : 38.1 Mb
b : 38.1 Mb
a b
40000040 40000040
> class(sizes)
[1] "numeric"
> (s <- sum(sizes))
[1] 80000080
> class(s) <- "object_size"
> s
80000080 bytes
> print(s,units="auto")
76.3 Mb
请注意
sapply
"object_size"
从sizes
(lapply
不删除类,但其结果 - alist
- 不能传递给sum
)。"object_size"
打印对象units="B"
而不是"auto"
两者似乎都不是最理想的;的值sizes
应打印为
a b
38.1 Mb 38.1 Mb
我的问题是:这只是一个错误,还是这种行为背后有一些深层原因?