studio - superponer graficas en r
ver código fuente en R (4)
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo puedo ver el código fuente de una función? 9 respuestas
¿Cómo veo el código fuente en R? Por ejemplo, para la función portfolio.optim
> require(tseries)
> portfolio.optim
function (x, ...)
UseMethod("portfolio.optim")
<environment: namespace:tseries>
> methods(portfolio.optim)
[1] portfolio.optim.default* portfolio.optim.ts*
Non-visible functions are asterisked
> portfolio.optim.ts
Error: object ''portfolio.optim.ts'' not found
> portfolio.optim.default
Error: object ''portfolio.optim.default'' not found
Cuando instalo el paquete R localmente, ¿también descarga el código fuente? ¿Dónde se almacena en la computadora? ¿Alguien sabe?
En respuesta a
Non-visible functions are asterisked
, esto significa que las funciones reales que se distribuyen ents
u objetos predeterminados, respectivamente, están en el espacio de nombres tseries pero no se exportan. Entonces, simplemente escribatseries:::portfolio.optim.default
y verá el código de función una vez que especifique el parche completo, incluido el espacio de nombres.Si R descarga la fuente o un binario depende de su sistema operativo. En cualquier caso, la fuente para el paquete tseries está disponible . Leer el código fuente escrito por codificadores experimentados es una buena manera de aprender.
La función getAnywhere
es útil cuando no sabes en qué espacio de nombres es una función.
Se describe en el manual o en la página de ayuda de la función.
Lo que puede hacer para la mayoría de las funciones es ingresar edición (nombre de la función ) en la ventana de comandos en R. Donde ingresa el nombre de la función con el nombre.
Como resultado, puede obtener el código fuente de la función. Sin embargo, lo probé para la función portfolio.optim, así que ahí no funciona. Posiblemente sólo para funciones estándar.
Si lo que desea ver es la fuente de un método en particular, tiene un par de opciones. Una es usar debug (portfolio.optim) . Luego, cuando ejecuta la función en un objeto, debe ir paso a paso a través del método, imprimiendo el código a medida que avanza. Use ''n'' para que pase, y no olvide usar undebug (portfolio.optim) cuando haya terminado.
Alternativamente, puede descargar la fuente del paquete que necesita, descomprimirlo y buscar cualquier archivo con nombres prometedores (este enfoque es difícil, porque la función que está buscando puede estar escrita en C!). Esto es más fácil que buscar el código en un binario. Si va por esta ruta, el código debería estar disponible en una carpeta comprimida dondequiera que descargue.