Sweave: diferència entre les revisions

Salta a la navegació Salta a la cerca
1.326 bytes afegits ,  6 juny 2005
Línia 13: Línia 13:
Los archivos de sintaxis de Sweave deben guardarse con la extensión .Rnw.
Los archivos de sintaxis de Sweave deben guardarse con la extensión .Rnw.


La mayor parte del fichero tendrá la apariencia de un archivo de [[Latex|LaTeX]] (incluidos los encabezados), aunque con la particularidad de contener ''chunks'', que pueden entenderse como partes diferenciadas de la sintaxis correspondientes a distintos tipos de código.  
La mayor parte del fichero tendrá la apariencia de un archivo de [[Latex|LaTeX]] (incluidos los encabezados), aunque con la particularidad de contener ''chunks'' (Inglés: Trozo), que pueden entenderse como partes diferenciadas de la sintaxis correspondientes a distintos tipos de código.  


Los ''chunks'' de texto, que serán procesados por [[Latex|LaTeX]], deben empezar por el signo '''@''':
Los ''chunks'' de texto, que serán procesados por [[Latex|LaTeX]], son identificados por el signo '''@''' antes del texto simple o antes del texto marcado con etiquetaje de LaTeX:


  @
  @
  Aquí empieza el texto
  Aquí empieza el texto


Si el primer ''chunk'' de texto está immediatamente después de los encabezados (es decir si no hay ningún ''chunk'' de código previamente), no es necesario especificar su inicio. En cambio, si el último ''chunk'' es de código de [[R]], hay que especificar el inicio de un ''chunk'' de texto antes de los cierres del documento de [[Latex|LaTeX]].
Los ''chunks'' de código R, que seran evaluados por [[R]], son identificados por el signo '''<<>>=''' antes del codigo
''<<>>=''
Los ''chunks'' del código que debe ser evaluado por [[R]] deben empezar por la cadena '''<<''argumentos''>>=''':
''Código de R''
 
El identificador de Código de [[R]] puede contener o no argumentos.
 
Si no se especifica ningun argumento (como en el codigo anterior) se usaran los valores por defecto que muestran tanto el ''input'' (ordenes de R), como el ''output'' (resultados de R).
 
Los argumentos funcionan a manera de interruptores para:
*Mostrar o no las ordenes de R: '''echo=TRUE''' ó '''echo=FALSE'''
*Mostrar o no los resultados de R: '''results=show''' ó '''results=hide'''


y deben estar contenidos entre los simbolos que identifican el código R, asi:
  <<''Argumento1=ValorDelArgumento1, Argumento2=ValorDelArgumento2, ...''>>=
  <<''Argumento1=ValorDelArgumento1, Argumento2=ValorDelArgumento2, ...''>>=
  ''Código de R''
  ''Código de R''


Los argumentos pueden ser, entre otros:
Otros posibles argumentos para estos ''chunks''  son:


* un ''label'' para poder referirnos posteriormente a ese ''chunk''. Si quiere especificarse, debe ser el primer argumento y ponerse sólo su valor sin ningún nombre de argumento:
* '''<<fig=TRUE, width=, height=>>=''' : Para indicar que el código que sigue a continuación generá como ''output'' un gráfico. con un ancho (width=) y altura (height=)
* '''results=tex''' : Para indicar que el código generará como resultado (''output'') directo un código de [[R]], habitualmente mediante el uso de funciones de librería [[R#Sistema_pedestre | xtable]]
* eval=FALSE : Para que el código no se evalúe en ese momento sino cuando se vuelva a llamar a ese ''chunk'' mediante su nombre, que se asigna con el argumento ''label=''
* ''label='' : Para poder referirnos posteriormente a ese ''chunk''. Si quiere especificarse, debe ser el primer argumento y ponerse sólo su valor sin ningún nombre de argumento:
   
   
  <<resul2>>=  
  <<resul2>>=
ó
<<label=resul2>>=


Para referirnos posteriormente a ese ''chunk'', usaremos el código:
Para referirnos posteriormente a ese ''chunk'', usaremos el código:
Línia 38: Línia 52:
  <<resul2>>
  <<resul2>>


El ejemplo 5 ilustra el uso de este argumento.
El ejemplo 5 ilustra el uso del argumento ''label''.
 
* echo=TRUE (por defecto) para mostrar el código de R (''input'') en el documento final, o echo=FALSE para ocultarlo
* results=hide para ocultar el resultado de R (''output'') en el documento final
* fig=TRUE para indicar que el código generará como resultado (''output'') un gráfico. En este caso se puede indicar el tamaño deseado para dicho gráfico con los argumentos ''width'' y ''height''
* results=tex para indicar que el código generará como resultado (''output'') directo un código de [[R]], habitualmente mediante el uso de funciones de librería [[R#Sistema_pedestre | xtable]]
* eval=FALSE para que el código no se evalúe en ese momento sino cuando se vuelva a llamar a ese ''chunk'' mediante su ''label''


Estos argumentos pueden establecerse por defecto con el código:
Todos los argumentos que hemos revisado pueden establecerse por defecto con el código:


  \SweaveOpts{''argumentos''}
  \SweaveOpts{''argumentos''}


Dicho código tendrá validez hasta que se especifique lo contrario, ya sea en un ''chunk'' concreto o con otro establecimiento de opciones por defecto.
los argumentos de código [[R]] establecidos mediante ''\SweaveOpts'' tendrán validez hasta que se especifique lo contrario, ya sea en un ''chunk'' concreto o estableciendo por defecto otros argumentos con un nuevo ''\SweaveOpts.


Por ejemplo, si queremos que por defecto no se muestre el código ''input'':
Por ejemplo, si queremos que por defecto no se muestren las ordenes de [[R]] (''input''):


  \SweaveOpts{echo=false}
  \SweaveOpts{echo=false}




Aunque, como ya se ha dicho, la forma natural de insertar código de [[R]] es mediante el uso de ''chunks'' de código, si se trata de una única expresión el código puede ir dentro de un ''chunk'' de texto con la siguiente sintaxis:
Aunque, como ya se ha dicho, la forma natural de insertar código de [[R]] es mediante el uso de ''chunks'' de código, si se trata de una única expresión el código puede ir dentro de un ''chunk'' de texto con el uso de ''Expresiónes de Lenguage S'': '''\Sexpr{}'''. que se rellenan con ordenes de [[R]], asi:


  @
  @
  Se incluyeron \Sexpr{length(seq(1,115))} sujetos.
  En el estudio se incluyeron '''\Sexpr{length(seq(1,115))}''' sujetos.
 
 
Si el primer ''chunk'' de texto está immediatamente después de los encabezados (es decir si no hay ningún ''chunk'' de código previamente), no es necesario especificar su inicio. En cambio, si el último ''chunk'' es de código de [[R]], hay que especificar el inicio de un ''chunk'' de texto antes de los cierres del documento de [[Latex|LaTeX]].
 
 
Las reglas basicas se resumen en:
* Los identificadores de cada tipo de ''chunk'' son: '''<<argumentos=>>=''' para codigo [[R]] y '''@''' para codigo LaTeX ó texto simple.
* Para incluir ordenes de [[R]] en un ''chunk'' de texto: se utilizan '''\Sexpr{}'''
* Si se pretende construir un documento LaTeX, tanto el encabezado como el cierre deben ser formato LaTeX, para ello, si el ultimo ''chunk'' del contenido del documento es de código [[R]], tendremos que marcar el inicio del código texto mediante '''@''' antes de que aparezcan los códigos LaTeX de cierre de documento.
 
 




Usuari anònim

Menú de navegació