全局环境变量内存用于表

时间:2018-05-09 16:54:37

标签: r rstudio

使用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旅程开始时发现的那样,我无法分辨使用的方法是什么,如果有的话。在清晰度,速度,灵活性,易用性,最快的代码等方面......什么是最佳实践?

1 个答案:

答案 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