Где находится файл сценария.R на ПК?

Я хочу найти расположение файлов скрипта.R, которые используются для вычисления в R.

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

Причиной запроса на поиск файла foo.R является

  1. Любопытство
  2. Знать, какой алгоритм используется в численных расчетах
  3. Более того, функция из пакета статистики, которую я использую, запускает результаты для двух аргументов, а не для других, и должна выяснить, как заставить ее работать. Ошибка, обозначенная буквой R, подразумевает, что в файле скрипта могут потребоваться некоторые изменения.

Я ищу более общий ответ, если это возможно.

Редактировать: Согласно комментариям, здесь приведен код для вычисления спектра временного ряда с использованием методов авторегрессии. Ввод данных представляет собой одномерный ряд.

x = ts(data)
spec.ar(x, method = "yule-walker")    1
spec.ar(x, method = "burg")        2

Команда 1 работает нормально. Команда 2 дает следующую ошибку.

Error in ar.burg.default(x, aic = aic, order.max = order.max, na.action = na.action,  : 
  Burg's algorithm only implemented for univariate series

Я попытался указать все аргументы правильно, как na.action=na.fail, order.max = NULL и т. Д., Но сообщение то же самое. Пожалуйста, предложите возможные решения.

PS (Этот вопрос задается после поиска в папке библиотеки, в которой установлен R, и zip-файлах, которые поставляются с пакетами, руководствами и открытием файлов.rdb, .rdx)

4 ответа

Решение

См. FAQ 7.40 Как получить доступ к исходному коду для функции?

В большинстве случаев при вводе имени функции будет напечатан ее исходный код. Однако код иногда скрывается в пространстве имен или компилируется. Для полного обзора того, как получить доступ к исходному коду, см. Uwe Ligges (2006), "Help Desk: Доступ к источникам", R News, 6/4, 43–45 (http://cran.r-project.org/ DOC /Rnews/Rnews_2006-4.pdf).

Когда R устанавливает пакет, он оценивает все исходные файлы ".R" и повторно сохраняет их в двоичном формате для быстрой загрузки. Поэтому вы обычно не можете легко найти исходный файл.

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

library(plyr)
ddply # prints the source for ddply

# See the content of the R directory for plyr,
# but it's only binary files:
dir(file.path(find.package("plyr"), "R"))
# [1] "plyr"     "plyr.rdb" "plyr.rdx"

# Get the source for the package:
download.packages("plyr", "~", type="source")

# ...then unpack and inspect the R directory...

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

Чтобы увидеть исходный код функции в программе R, загрузите пакет, содержащий функцию. В частности, загрузите файл, который заканчивается на "tar.gz". Это сжатый файл. Разверните сжатый файл, используя, например, "WinZip". Теперь вам нужно открыть несжатый файл, который заканчивается на ".tar". Загрузите бесплатное программное обеспечение "7-Zip". Нажмите на файл "7zFM.exe" и перейдите в каталог, содержащий файл ".tar". Вы можете извлечь содержимое этого ".tar" файла в новую папку. Содержимое состоит из файлов R, показывающих исходный код для функций в пакете R.

РЕДАКТИРОВАТЬ:

Сегодня (8 июля 2012 г.) я смог открыть файл tar.gz, используя последнюю версию WinZIP, и мог скопировать содержимое (исходный код) оттуда, не используя 7-Zip.

РЕДАКТИРОВАТЬ:

Сегодня (19 января 2013 г.) я просмотрел исходный код для функций в базе R, загрузив файл 'R-2.15.2.tar.gz'

Чтобы загрузить этот файл, перейдите на веб-страницу http://cran.at.r-project.org/ и щелкните этот файл в следующей строке:

"Последний выпуск (2012-10-26, Trick or Treat): R-2.15.2.tar.gz, прочитайте, что нового в последней версии".

Распакуйте файл. WinZip будет работать, или он сделал для меня. Затем найдите на своем компьютере readtable.r или другая базовая функция R.

agstudy отметил здесь https://stackru.com/questions/14417214/source-file-for-r-function что исходный код для read.csv находится в файле readtable.r, поэтому не ожидайте, что каждая базовая функция R будет иметь свой собственный файл.

.libPaths() должен рассказать вам все ваши текущие местоположения библиотеки. Можно иметь более одной установки пакета, если есть две библиотеки, но будет использоваться только та, которая находится в первой библиотеке. Если вы не предложите код и точное сообщение об ошибке, вряд ли кто-то сможет предложить лучший совет.

Другие вопросы по тегам