Где R хранит результаты оператора%>% во время работы? - PullRequest
2 голосов
/ 11 апреля 2020

Я пытаюсь оптимизировать длительные операции времени выполнения в своем коде R и догадываюсь, почему это занимает слишком много времени.

Я работаю с большими данными, и мой код выглядит примерно так:

var <- data.table(data) %>%
    select(some_features) %>%
    setnames(new_names) %>%
    merge(blablabla) %>%
    filter(screenName %in% DEFAULT_USERS) %>% 

    # Some long runtime operations because large data
    ...... %>%
    merge(some_df) %>% data.table() %>%
    select(some_boring_features)

Я предполагаю, что R хранит все переменные в ОЗУ (так же, как и все языки) ... Но когда используется%>%, результаты этих запущенных операций еще не сохраняются в переменной, и я предлагаю сохранить их в кэш-памяти. вместо использования оперативной памяти. Правильно ли это?

Было бы лучше создать новые переменные и сохранить частичные результаты в ОЗУ, а не выполнять весь поток?

Спасибо!

1 Ответ

0 голосов
/ 11 апреля 2020

Поскольку вы ищете, какой вызов (ы) занимает (и) больше всего времени, я рекомендую использовать инстансинг. Конечно, я всегда так делаю, когда требуется отладка последовательности вызовов.

На мой взгляд, конвейеризация - это скорее конец, который улучшает читаемость кода и его обслуживание, а не начало конструировать и тестировать правильную логику c. YMMV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...