2012-02-21 2 views
5

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

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

Причина просить, чтобы найти файл foo.R является

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

+0

Способ поиска .R файлов * * зависит от специфики используемого вами пакета (например, как вы его установили). –

+0

Я установил их с помощью диспетчера установки в R и использую пакеты, связанные с анализом временных рядов. Я не нашел файлы сценариев .R в довольно многих случаях, которые я проверил даже с zip-файлами или файлами tar, которые поставляются с CRAN-пакетом в Интернете. – Anusha

+1

Что касается (3), то вряд ли решение проблемы с функцией в пакете ** stats ** (которое является частью базового R-дистрибутива, а не надстройки) требует изменения исходного кода. Но это, вероятно, лучше рассматривается в отдельном вопросе с конкретной информацией. – joran

ответ

9

См. Часто задаваемые вопросы 7.40 Как получить доступ к исходному коду для функции?

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

3

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

+0

С помощью Windows-машины вы можете автоматизировать предложение DWin и открыть все области, которые библиотеки хранятся с помощью: 'lapply (seq_along (.libPaths()), function (i) shell.exec (.libPaths() [i])) ' –

3

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

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

EDIT:

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

EDIT:

Сегодня (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://stackoverflow.com/questions/14417214/source-file-for-r-function, что исходный код для read.csv находится в файле readtable.r, поэтому не ожидайте, что у каждой базовой функции R будет свой собственный файл.

+0

+1 Этот метод помог найти некоторые функции. Благодарю. – Anusha

5

Когда 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... 
Смежные вопросы