Улучшение кода от нескольких уценок R до всего 1 - PullRequest
0 голосов
/ 29 марта 2020

Я работаю над проектом, который требует прогнозирования по n уникальным предметам для каждого местоположения. Есть 4 местоположения, поэтому я создал 4 различных файла уценки R. Единственное различие в файлах уценки 4 R заключается в том, что первое, что я делаю, это подгруппирую данные в 1 из 4 местоположений.

Затем я рендеринг всех 4 файлов для получения моих результатов.

Есть ли более чистый способ сделать все это вместо 4 разных файлов R Markdown? Каждый раз, когда я делаю регулировку, я должен go вернуться назад и сделать это 4 раза, а не один раз.

В настоящее время файл разметки R настроен следующим образом:

чанк 1 загружает данные подмножества чанка данных 2 в 1 место (скажем, в США, например) чанка 3-60 лотов различных измерений, прогнозирования, точности и т. д. c. кусок 61 создает CSV-файл с результатами.

Другой файл R Markdown точно такой же, за исключением фрагмента 2: выбор другого местоположения.

Вместо 4 R уценочных файлов было бы быстрее иметь 1 R уценочный файл.

Есть идеи, как это сделать?

Спасибо

1 Ответ

0 голосов
/ 29 марта 2020

Я предполагаю, что вы делаете что-то еще со скриптом Rmd, а не просто производите файлы csv, потому что это можно сделать просто в скрипте R, без вязания.

Как правило, в Rmd я хотел бы включите в блок настройки все библиотеки, соответствующую функцию чтения для ввода набора данных, функции, используемые для обработки подмножеств, и любые другие константы, применимые ко всем подмножествам.

Для выходной части, предполагая он идентичен для всех подмножеств, кроме именования и заданных данных c, у меня будет четыре блока, которые вызывают одну и ту же основную функцию рабочего процесса. Например, предполагая переменную "to_subset"

my_data %>% dplyr::filter(to_subset == "Class A") %>% master_function()

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

В зависимости от заданного c вывода также может быть полезно установить выходные переменные в чанке и вытянуть их через встроенную ссылку.

Это примерно так же, как я могу c, насколько я могу получить без дополнительной информации относительно вывода. Как я уже сказал, если нет ничего, кроме csv, вам лучше запустить скрипт R, заканчивающийся

%>% readr::write_csv(paste("filevar"".csv")

, и использовать purrr: map, чтобы применить его к вектору подмножеств.

...