Поиск…


Вступление

С «Воспроизводимостью» мы подразумеваем, что кто-то другой (возможно, вы в будущем) может повторить шаги, которые вы выполнили, и получить тот же результат. См. Результирующее исследование задачи .

замечания

Чтобы создать воспроизводимые результаты, необходимо устранить все источники изменений. Например, если используется генератор случайных чисел (псевдо), семя должно быть исправлено, если вы хотите воссоздать те же результаты. Другой способ уменьшить вариацию - объединить текст и вычисления в том же документе.

Рекомендации

  • Пэн, РД (2011). Воспроизводимые исследования в области вычислительной техники. Science, 334 (6060), 1226-1227. http://doi.org/10.1126/science.1213847

  • Пэн, Роджер Д. Отчет о написании научных данных в R. Leanpub, 2015 г. https://leanpub.com/reportwriting .

Воспроизводимость данных

dput() и dget()

Самый простой способ совместного использования (предпочтительного малого) кадра данных - использовать базовую функцию dput() . Он будет экспортировать объект R в текстовой форме.

Примечание. Прежде чем приводить приведенные ниже примеры данных, убедитесь, что вы находитесь в пустой папке, в которую вы можете писать. Запустите getwd() и прочитайте ?setwd если вам нужно сменить папки.

dput(mtcars, file = 'df.txt')

Затем каждый может загрузить точный объект R в свою GlobalEnvironment с помощью функции dget() .

df <- dget('df.txt')

Для больших объектов R существует несколько способов сохранения их воспроизводимости. См. Раздел « Ввод и вывод» .

Воспроизводимость пакета

Воспроизводимость пакета - очень распространенная проблема при воспроизведении некоторого R-кода. Когда различные пакеты обновляются, некоторые межсоединения между ними могут сломаться. Идеальное решение проблемы состоит в том, чтобы воспроизвести образ машины для записи кода R на вашем компьютере в день написания кода. И вот идет пакет checkpoint .

Начиная с 2014-09-17, авторы пакета делают ежедневные копии всего репозитория пакетов CRAN собственному зеркальному репозиторию - Microsoft R Archived Network. Поэтому, чтобы избежать проблем с воспроизведением пакетов при создании воспроизводимого проекта R, все, что вам нужно, это:

  1. Убедитесь, что все ваши пакеты (и версия R) обновлены.
  2. Включите в свой код строку checkpoint::checkpoint('YYYY-MM-DD') .

checkpoint создаст каталог .checkpoint в вашем каталоге R_home ( "~/" ). В этот технический каталог будут установлены все пакеты, которые используются в вашем проекте. Это означает, что checkpoint просматривает все файлы .R в каталоге проекта, чтобы забрать все вызовы library() или require() и установить все необходимые пакеты в том виде, в котором они существовали в CRAN в указанную дату.

PRO Вы освобождаетесь от проблемы воспроизводимости пакета.
CONTRA Для каждой указанной даты вам необходимо загрузить и установить все пакеты, которые используются в определенном проекте, который вы хотите воспроизвести. Это может занять довольно много времени.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow