Prácticas de Estadística en R - Departamento de Estadística e ...
Prácticas de Estadística en R - Departamento de Estadística e ...
Prácticas de Estadística en R - Departamento de Estadística e ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.5 Programando <strong>en</strong> R 13<br />
2.5. Programando <strong>en</strong> R<br />
La principal v<strong>en</strong>taja <strong>de</strong> R (y S-plus) sobre la mayoría <strong>de</strong>l software estadístico es que<br />
permite combinar sus librerías especializadas con un l<strong>en</strong>guaje <strong>de</strong> programación propio.<br />
Esto resulta mucho más pot<strong>en</strong>te que, por ejemplo, las macros <strong>en</strong> SPSS. A continuación<br />
veremos las principales características <strong>de</strong> la programación <strong>en</strong> R.<br />
Agrupando comandos: R permite escribir varios comandos <strong>en</strong> la misma línea. Esto<br />
se hace poni<strong>en</strong>do un marcador <strong>de</strong> final <strong>de</strong> comando antes <strong>de</strong> empezar el sigui<strong>en</strong>te.<br />
El marcador utilizado <strong>en</strong> R es “;”.<br />
Expresiones: Una serie <strong>de</strong> comandos escritos <strong>en</strong>tre llaves forman una expresión, el<br />
resultado <strong>de</strong> la misma será el <strong>de</strong> su último comando; la estructura g<strong>en</strong>eral <strong>de</strong> una<br />
expresión es{cmd_1; cmd_2; ... cmd_n}. Pue<strong>de</strong> haber expresiones anidadas, que<br />
se van evaluando <strong>de</strong> <strong>de</strong>ntro hacia fuera. Son el compon<strong>en</strong>te principal <strong>de</strong> funciones,<br />
bucles...<br />
Ejecución condicional: Como <strong>en</strong> todos los l<strong>en</strong>guajes <strong>de</strong> programación, esto se hace<br />
con las s<strong>en</strong>t<strong>en</strong>cias if. Estas s<strong>en</strong>t<strong>en</strong>cias <strong>en</strong> R ti<strong>en</strong><strong>en</strong> la sigui<strong>en</strong>te sintaxis:<br />
if (expr_1) {expr_2}<br />
else if (expr_3) {expr_4}<br />
else {expr_5}<br />
don<strong>de</strong> expr_1 y expr_3 <strong>de</strong>b<strong>en</strong> <strong>de</strong>volver un valor lógico. En R también se pue<strong>de</strong>n<br />
construir s<strong>en</strong>t<strong>en</strong>cias if anidadas (no es más que anidar expresiones). La s<strong>en</strong>t<strong>en</strong>cia<br />
condicional switch también está <strong>de</strong>finida <strong>en</strong> R.<br />
Bucles R admite los bucles for, repeat y while, su sintaxis es la sigui<strong>en</strong>te:<br />
for: for (name in expr_1) expr_2. Por ejemplo, la sintaxis para un bucle que<br />
mueva un índice i <strong>de</strong>s<strong>de</strong> 1 hasta n es:<br />
for (i in 1:n) {expr}<br />
repeat: repeat expr. En este caso hay que asegurarse <strong>de</strong> que <strong>en</strong> algún mom<strong>en</strong>to<br />
<strong>de</strong> expr se llega a un break/return que nos saca <strong>de</strong>l bucle.<br />
while: while(cond) expr.<br />
Depurando el código: Las funciones print() y cat() nos permit<strong>en</strong> imprimir datos <strong>en</strong><br />
pantalla durante la ejecución <strong>de</strong> un programa. Útil tanto para pres<strong>en</strong>tar la salida<br />
<strong>de</strong> resultados como para <strong>de</strong>purar el código.