2012-02-21 21 views
5

Quiero encontrar la ubicación del script .R archivos que se utilizan para el cálculo en R.¿Dónde se encuentra el archivo de script .R en la PC?

Sé que al escribir la función del objeto, obtendré el código que se está ejecutando y luego puedo copiar y editar y guárdelo como un nuevo archivo de script y úselo.

La razón de hacer para encontrar el archivo foo.R es

  1. curiosidad
  2. saber cuál es el algoritmo utilizado en los cálculos numéricos
  3. Más immedietly, la función de las estadísticas Paquete I estoy usando, ejecuta resultados para dos de los argumentos y no para los demás y tengo que descubrir cómo hacerlo funcionar. El error mostrado por R implica que puede haber alguna modificación requerida en el archivo de script.

Estoy buscando una respuesta más general, si es posible.

Editar: Según los comentarios hasta el momento, aquí está el código para calcular el espectro de una serie de tiempo utilizando métodos autorregresivos. La entrada de datos es una serie univariante.

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

comando 1 se está ejecutando bien. comando 2 da el siguiente error.

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

Yo probé especificar todos los argumentos correctamente como na.action = na.fail, order.max = NULL, etc, pero el mensaje es el mismo. Amablemente sugiera posibles soluciones.

P.S. (Esta pregunta se publica después de buscar en la carpeta de la biblioteca donde está instalado R y los archivos zip que vienen con paquetes, manuales y archivos .rdb, .rdx de apertura)

+0

La forma de encontrar los archivos .R * no depende de las especificaciones del paquete que está utilizando (cómo lo instaló, por ejemplo). –

+0

Los he instalado usando el administrador de instalación en R y estoy usando paquetes relacionados con el análisis de series de tiempo. No encontré los archivos .R de script en bastantes que revisé incluso con los archivos zip o tar que vienen con el paquete CRAN en línea. – Anusha

+1

En cuanto a (3), es muy improbable que la solución a un error de una función en el paquete ** stats ** (que es parte de la distribución base R, no un complemento) requiera modificar el código fuente. Pero eso probablemente se aborde mejor en una pregunta separada, con la información específica provista. – joran

Respuesta

9

Ver preguntas frecuentes 7.40 ¿Cómo accedo al código fuente de una función?

En la mayoría de los casos, a escribir el nombre de la función imprimirá su código fuente . Sin embargo, el código a veces se oculta en un espacio de nombres o compilado. Para obtener una descripción completa sobre cómo acceder al código fuente, consulte Uwe Ligges (2006), "Mesa de ayuda: Acceder a las fuentes", R News, 6/4, 43-45 (http: //cran.r-project .org/doc/Rnews/Rnews_2006-4.pdf).

3

.libPaths() debe decirle todas sus ubicaciones actuales de biblioteca. Es posible tener más de una instalación de un paquete si hay dos bibliotecas, pero solo se usará la que está en la primera biblioteca. A menos que ofrezca el código y el mensaje de error exacto, no es probable que alguien pueda ofrecer un mejor consejo.

+0

Desde una máquina de Windows puede automatizar la sugerencia de DWin y abrir todas las áreas que las bibliotecas se almacenan con: 'lapply (seq_along (.libPaths()), function (i) shell.exec (.libPaths() [i])) ' –

3

Creo que está pidiendo ver lo que llamo el código fuente para una función en un paquete. Si es así, la forma en que lo hago es la siguiente, que me ha funcionado con éxito en las tres veces que lo he intentado. Guardo estas instrucciones a mano en algunos lugares y las copié y pegué aquí:

Para ver el código fuente de una función en el Programa R, descargue el paquete que contiene la función. Específicamente, descargue el archivo que termina en "tar.gz". Este es un archivo comprimido. Expande el archivo comprimido usando, por ejemplo, "WinZip". Ahora necesita abrir el archivo descomprimido que termina en ".tar". Descargue el software gratuito "7-Zip". Haga clic en el archivo "7zFM.exe" y navegue hasta el directorio que contiene el archivo ".tar". Puede extraer el contenido de ese archivo ".tar" en una nueva carpeta. El contenido consiste en archivos R que muestran el código fuente de las funciones en el paquete R.

EDIT:

Hoy (8 de julio de 2012) que era capaz de abrir el alquitrán.gz 'file utilizando la última versión de' WinZIP 'y podría copiar el contenido (el código fuente) desde allí sin tener que usar' 7-Zip '.

EDIT:

Hoy (19 de enero de 2013) Vi el código fuente de las funciones de base de R descargando el archivo 'R-2.15.2.tar.gz'

Para descargar ese archivo vaya a la página web http://cran.at.r-project.org/ y haga clic en ese archivo en esta línea:

"El último lanzamiento (2012-10-26, Trick or Treat): R-2.15.2.tar.gz, lea las novedades en el ultima versión."

Descomprime el archivo. WinZip funcionará, o lo hizo por mí. Luego busque en su computadora readtable.r u otra función R base.

agstudy señalar aquí que https://stackoverflow.com/questions/14417214/source-file-for-r-function código fuente para read.csv se encuentra en el archivo readtable.r, por lo que no esperamos que todas las funciones de base R para tener su propio archivo.

+0

+1 Este método ayudó a encontrar algunas funciones. Gracias. – Anusha

5

Cuando R instala un paquete, evalúa todos los archivos fuente ".R" y los vuelve a guardar en un formato binario para una carga más rápida. Por lo tanto, normalmente no puede encontrar fácilmente el archivo fuente.

Como se ha sugerido en otros lugares, puede simplemente escribir el nombre de la función y ver el código fuente, o descargar el paquete fuente y encontrar la fuente allí.

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... 
Cuestiones relacionadas