Похоже, мой предыдущий пост с советами и рекомендациями был интересен моим коллегам-программистам на R, поэтому я вернулся ко второй части! Если вы еще не читали первую часть, посмотрите ее здесь:
Взгляните на следующий код. Первая строка работает нормально, третья нет. Посмотрите, сможете ли вы понять, почему:
Небольшой вопрос с подвохом, они точно такие же, верно? Ну вроде. Это скорее история о том, что происходит на заднем плане. Я потратил от 30 минут до часа, пытаясь решить одну и ту же проблему с разными функциями. Я был ошеломлен. Пока я не понял… пакеты.
Правильно, пакеты. Когда я тестировал свой скрипт, я загрузил пакеты в определенном порядке, и это сработало, но когда пришло время развертывания, мои пакеты были загружены в немного другом порядке (я загружаю их в продакшене в алфавитном порядке, потому что это меня беспокоит если нет), и это больше не работает. В производственной среде загрузка пакетов в алфавитном порядке приводила к тому, что функция, которую я использовал, маскировалась другой функцией с точно таким же именем из другого пакета. Возвращаясь к приведенному выше примеру кода, первая строка работала, потому что мой сценарий использовал функцию задержки из dplyr. Второй провалился, потому что он использовал функцию задержки из статистики.
Вы не узнаете, что не так, просто взглянув на код, вам придется копаться в том, что происходит за кулисами. Так было в этот день, я поклялся никогда больше не тратить на это время и решил, что с этого момента я буду предварять каждую функцию именем пакета, из которого я предполагал, что функция будет исходить. Никогда не давать RStudio повода предположить, какой именно пакет я имел в виду. Переписав приведенный выше код с именами пакетов, вы сможете быстрее осознать ошибку:
Не говоря уже о том, что каждый раз, когда мне нужно было вернуться к коду, который я написал более 6 месяцев назад, я никак не мог вспомнить, откуда взялись эти непонятные функции. Заставив себя писать функции с включенным именем пакета, я решил и эту проблему.
Вы создали набор инструментов R-скриптов для автоматизации скучных задач? Вы ежедневно запускаете эти R-скрипты, чтобы облегчить себе жизнь? Сделайте себе одолжение и сделайте свою жизнь еще проще, установив пакет taskscheduleR, если вы работаете в ОС Windows. Как только вы это сделаете, вы увидите опцию «Расписание сценариев R в Windows».

При нажатии на него запускается удивительное приложение Shiny, которое позволит вам выбрать сценарий, как часто вы хотите, чтобы он запускался, и когда вы хотите, чтобы он запускался. Оттуда ваши задачи будут выполняться автоматически в фоновом режиме, и теперь вам даже не нужно запускать их самостоятельно!

P.S. дальнейшую настройку того, как будет запускаться сценарий, можно найти в приложении Windows «Планировщик заданий» после того, как вы создадите задачу с помощью процесса, который я только что описал. Кроме того, это не запланирует задачу, если в ваших именах файлов есть пробелы.
Это не самый простой способ, но вы можете выполнять поиск в папке «Входящие» Outlook из R (и даже сохранять вложения). Одно время моя проблема заключалась в том, что мне нужно было загрузить сотни CSV-файлов из моего почтового ящика и выполнить некоторые манипуляции с данными. Я отчаянно хотел найти решение в R, и, потратив на это больше времени, чем должен был, я наконец нашел решение, которое сработало:
Пора мне найти еще несколько советов и хитростей!