使用RStudio并查找使用大多数内存识别变量并在保存项目会话之前将其清除。
'1。创建具有可变名称和大小的数据框的最佳方法是什么?
基于各种来源,我设法如下:
env <- data.frame(
"var" = ls(),
"size" = sapply(ls(),function(x){object.size(get(x))}),
"sizef" = sapply(ls(),function(x){format(object.size(get(x)), unit = 'auto')})
)
2。按大小排序列表并输出最佳结果的最佳方法是什么?
我能够通过base
子集来实现这一点。在这种情况下,为什么order(-env$size)
有效但order(-size)
会抛出错误?
head(env[order(-env$size),],10)
我还首次使用了dplyr
。
library(dplyr)
env %>%
arrange(-size) %>%
filter(size>=1e8) %>%
top_n(10)
正如我经常在R旅程开始时发现的那样,我无法分辨使用的方法是什么,如果有的话。在清晰度,速度,灵活性,易用性,最快的代码等方面......什么是最佳实践?
答案 0 :(得分:0)
获取所有变量名称的更简单方法是直接访问全局环境:
sort(sapply(.GlobalEnv, object.size)) # a sorted, named, numeric vector
要获取最大的n
个对象,您可以使用tail
:
tail(sort(sapply(.GlobalEnv, object.size)), n)
如果您想将它作为data.frame:
data.frame(size = sort(sapply(.GlobalEnv, object.size))) # object name is the name of each row