Я трачу немного времени на улучшение производительности некоторого кода анализа набора данных на основе Tidyverse, который работает с набором данных от 100-500 столбцов до 250 000 строк данных (количество нужных вам столбцов зависит от выполняемой вами задачи).выполняется).
Код считывает данные из файла CSV, а затем выполняет некоторую раннюю процедуру импорта данных из CSV - например, исправляя логические значения, которые записываются как "Y", "N", "", чтобы быть скорее логическимчем факторы.
Первоначально мы импортировали все столбцы независимо от задачи - работа, которую я выполнял, переместила нас на выборочный импорт столбцов - пропуская нагрузку, которая может не потребоваться для определенных задач, и в результатев прирост производительности в 3 раза.Конечно, это делает обработку данных немного более сложной.
Я прибегнул к использованию mutate со списком выражений для аккуратной обработки данных.
Однако мне интересно, в какой моментполезно сгруппировать идентичные выражения вместе, чтобы выполнить mutate_at (например, сделать все логические столбцы, которые используют «Y», «N», «NA» вместе), а затем выполнить последующее изменение оставшихся столбцов;по сравнению с наличием функции в строке для выполнения мутации?Есть ли разница в производительности между этими двумя, что стоит усложнить код?
Понимая, что здесь будут вариации варианта использования - просто подумал, есть ли у кого-нибудь чувство по поводу каких-то общих правил, прежде чем я либо попробую его, либопотратьте время на создание тестовых примеров, чтобы проверить, стоит ли это делать.