Sweave: diferència entre les revisions
Salta a la navegació
Salta a la cerca
→Sintaxis básica
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]], | 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 | ||
Los ''chunks'' de código R, que seran evaluados por [[R]], son identificados por el signo '''<<>>=''' antes del codigo | |||
''<<>>='' | |||
Los '' | ''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'' | ||
Otros posibles argumentos para estos ''chunks'' son: | |||
* un ''label'' | * '''<<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 | El ejemplo 5 ilustra el uso del argumento ''label''. | ||
Todos los argumentos que hemos revisado pueden establecerse por defecto con el código: | |||
\SweaveOpts{''argumentos''} | \SweaveOpts{''argumentos''} | ||
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 | 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 | 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: | ||
@ | @ | ||
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. | |||