внесение изменений в функцию в пакете R и установка на Ubuntu

Короткий вопрос: я хочу отредактировать функцию postgresqlWriteTable в пакете RPostgreSQL и установить его на R, запущенном на машине Ubuntu.

Длительное объяснение:

Корень моей проблемы заключается в том, что я пытаюсь записать в таблицу postgres с помощью столбца первичного ключа с dbWriteTable из R, используя dbWriteTable из пакета RPostgreSQL .

Я прочитал это сообщение: Как написать данные из таблиц R в PostgreSQL с помощью автоматического ввода первичного ключа? который предложил исправить мою проблему, изменив функцию postgresqlWriteTable в пакете RPostgreSQL . Он работает, когда я интерактивно использую fixInNamespace в среде OSX и редактирую функцию.

К сожалению, мне нужно запустить мой скрипт на экземпляре AWS, работающем на R на Ubuntu. У меня есть RPostgreSQL установленный в этом месте на моей машине: /usr/local/lib/R/site-library/RPostgreSQL . Я установил его, вызвав R CMD install RPostgreSQL_0.4-1.tar.gz

Теперь я пытаюсь найти функцию postgresqlWriteTable . Предполагается, что он находится в файле PostgreSQLSupport.R . Я искал всю библиотеку – такого файла нет.

Я понял, что на моей локальной машине в OSX Finder, когда я разархивирую папку пакета tar.gz, я могу увидеть файл PostgreSQLSupport.R где я должен изменить функцию.

Поэтому я изменил функцию. Затем я удалил установленный RPostgreSQL с моей машины Ubuntu и скопировал новую папку (с моей локальной машины) на машину Ubuntu и попытался использовать devtools для установки пакета, как предлагается в сообщении здесь: Загрузка пакета R из пользовательского каталога

вот что произошло:

 > library("devtools") > install("/usr/local/lib/R/site-library/RPostgreSQL") Error: Can't find '/usr/local/lib/R/site-library/RPostgreSQL'. > install("RPostgreSQL", "/usr/local/lib/R/site-library/RPostgreSQL") Installing RPostgreSQL '/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet \ CMD INSTALL '/datasci/nikhil/RPostgreSQL' \ --library='/usr/local/lib/R/site-library' --install-tests * installing *source* package 'RPostgreSQL' ... file 'R/PostgreSQLSupport.R' has the wrong MD5 checksum ERROR: 'configure' exists but is not executable -- see the 'R Installation and Administration Manual' * removing '/usr/local/lib/R/site-library/RPostgreSQL' Error: Command failed (1) 

Я нахожусь на своем остроумие!

  1. Скопируйте файл pacakge .tar.gz на машину AWS.
  2. Распакуйте этот файл, чтобы у вас была структура каталогов.
  3. Измените функцию внутри файла и сохраните изменения.
  4. Возможно, вам также придется увеличить номер версии в файле DESCRIPTION .
  5. Используйте devtools::build для создания нового файла .tar.gz .
  6. Установите эту обновленную версию пакета.