Где находится файл сценария .R на ПК? - PullRequest
5 голосов
/ 22 февраля 2012

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

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

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

  1. Любопытство
  2. Знать, какой алгоритм используется в численных расчетах
  3. Более того, функция из пакета stats , который я использую, выполняет результаты для двух аргументов, а не для других, и должна выяснить, как заставить ее работать. Ошибка, обозначенная буквой 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 и т. Д., Но сообщение то же самое. Просьба предложить возможные решения.

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

Ответы [ 4 ]

9 голосов
/ 22 февраля 2012

См. 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).

5 голосов
/ 22 февраля 2012

Когда 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...
3 голосов
/ 22 февраля 2012

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

Чтобы увидеть исходный код функции в Программе 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.

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

3 голосов
/ 22 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...