Использование глобальной переменной среды памяти для таблицы - PullRequest
0 голосов
/ 09 мая 2018

Использование 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 голосов
/ 09 мая 2018

Более короткий способ получить все имена переменных - получить прямой доступ к глобальной среде:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...