################################################################################ ### TALLER FUNDAMENTOS DE R ### ### EJERCICIO 2.1: Funciones y Argumentos ### ### ### ### Center for Conservation and Sustainable Development ### ### Missouri Botanical Garden ### ### Sitio en la red: rbasicsworkshop.weebly.com ### ################################################################################ ## OBJETIVO: ## poner en práctica los conceptos de 'función' y 'argumento', y aprender ## algunas funciones básicas de R. # El siguiente código repite "su nombre" 10 veces rep(x="su nombre", times=10) ## TAREA 1. Escriba la linea de código anterior sin nombres de argumentos. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 2. Escriba la linea de código anterior cambiando el orden de argumentos. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 3. Remplace "su nombre" por otro texto, y re-escriba el código para que ## ese texto se repita diezmil veces. ## ESCRIBA SU RESPUESTA AQUÍ: # El siguiente código repite "su nombre" y "el nombre de un amigo" 10 veces rep(x=c("su nombre", "el nombre de un amigo"), times=10) ## TAREA 4. ¿Cuántas funciones tiene la linea de código arriba? ¿Cuáles son? ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 5. Re-escriba el código arriba de forma que "su nombre" se repita diez ## veces ANTES de que "el nombre de un amigo" se repita diez veces. Estudie en la ## página de ayuda para la función *rep* el argumento *each*. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 6. Re-escriba el código arriba para repetir "su nombre" diez veces, y ## después repetir "el nombre de un amigo" seis veces. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 7. ¿Cuántas funciones usó en el la respuesta de la TAREA 6, y cuántas ## veces usó cada función? ## ESCRIBA SU RESPUESTA AQUÍ: # Una serie de bases de datos están incluidas en la instalación de R. Para ver # estas bases de datos puede utilizar la función *data*: data() # La función *data* también sirve para leer las bases de datos, por ejemplo, el # siguiente código lee datos sobre el crecimiento de Pinus taeda (Loblolly pines): data("Loblolly") # La función ayuda puede utilizarse para obtener información sobre las bases de # datos incluidas con la instalación de R: help("Loblolly") ## TAREA 8. ¿Cuál es el argumento de la función *help* que se omite en el código ## anterior y que toma el valor "Loblolly"? ## ESCRIBA SU RESPUESTA AQUÍ: # La función *attach* hace que los nombres de las variables en la base de datos # "Loblolly" fácilmente asequibles: attach(Loblolly) # La función *plot* se puede utilizar para elaborar varios tipos de gráficos: plot(age, height) ## TAREA 9. Re-escriba el código anterior usando los nombres de los argumentos ## explícitamente. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 10. Re-escriba el código anterior utilizando el argumento "col" para ## cambiar el color de los símbolos (e.g. col="red"). Para ver los colores ## disponibles puede utilizar la función *colours* de esta manera: colours() ## También puede encontrar una lista parcial de colores en la siguiente página ## bajo "QUICK REFERENCES" en la sección "REsources" de página del R Basics ## Workshop: http://rbasicsworkshop.weebly.com/resources.html ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 11. Modifique el código anterior usando el argumento *xlab* y *ylab* ## para especificar el nombre de los ejes. ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 12. ¿Qué hace el siguiente código? (¿Qué hace la función *lm*?) lm(height ~ age) ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 13. ¿Qué hace el siguiente código? summary(lm(height ~ age)) ## ESCRIBA SU RESPUESTA AQUÍ: # El siguiente código crea una gráfica utilizando la función *plot*, y luego # usa la función *abline* para añadir a la gráfica una linea de regresión: plot(age, height, pch=21, col="grey60", xlab="Edad (años)", ylab="Altura (pies)") abline(lm(height ~ age), lwd=2, col="black") ## TAREA 14. ¿Cuántas funciones se utilizan en el siguiente código? plot(rnorm(100, 3, 2), rpois(100, runif(1)), pch=16, col="lightblue", xlab="Valores obtenidos de una distribución normal", ylab="Valores obtenidos de una distribución de Poisson") ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 15. ¿Cuántos argumentos de la función *plot* se utilizaron en el ## código anterior? ## ESCRIBA SU RESPUESTA AQUÍ: ## TAREA 16. Describa en palabras lo que el código anterior hace: # Paso 1: obtiene cien valores aleatorios de una distribución normal # con media igual a tres y desviación estandar igual a dos. ## ESCRIBA EL RESTO DE SU RESPUESTA AQUÍ: # Paso 2: # Paso 3: # ... ################################################################################ ### RESPUESTAS ################################################################# ################################################################################ ## TAREA 1. rep("su nombre", 10) ## TAREA 2. rep(times=10, x="su nombre") ## TAREA 3. rep(times=10, x="Juan") ## TAREA 4. # 2 function, rep and c ## TAKS 5. rep(x=c("Sebas", "Ivan"), time=10) ## TAREA 6. rep(x=c("Sebas", "Ivan"), time=c(10,6)) ## TAREA 7. # 3 veces, *rep* una vez y *c* dos veces ## TAREA 8. # El nombre es *topic*: help(topic="cars") ## TAREA 9. plot(x=age, y=height) ## TAREA 10. plot(x=age, y=height, col="forestgreen") ## TAREA 11. plot(x=age, y=height, col="forestgreen", xlab="Edad (años)", ylab="Altura (pies)") ## TAREA 12. # La función *lm* ajusta un modelo de regresión lineal a los datos. ## TAREA 13. # Crea un resumen de los resultados de la regresión lineal de altura # como función de edad ## TAREA 14. # Cuatro funciones: *plot*, *rnorm*, *rpois*, y *runif*. ## TAREA 15. # Seis arumentos. ## TAREA 16. # Paso 1: Obtiene cien valores aleatorios de una distribución normal # con media igual a tres y desviación estandar igual a dos. # Paso 2: Obtiene un valor aleatorio de la distribución uniforme entre cero y uno. # Paso 3: Obtiene cien valores aleatorios de una disribución Poisson, usando el # valor aleatorio generado en el Paso 2 para definir el valor del argumento # *lambda* de la función *rpois*. Este argumento *lambda* es la media y, a # la vez, la varianza de la distribución de Poisson. Recuerde que en la # distribución Poisson la media es igual a la varianza. # Paso 4: Haga una gráfica que relacione los cien valores aleatorios obtenidos de la distribución normal en el Paso 1 con los cien valores aleatorios obtenidos de la distribución Poisson en el Paso 2.