{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

TP5 - Introduccion al lenguaje R - Anlisis Exploratorio y...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays TP5 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 50 Dra. Diana M. Kelmansky Trabajo Práctico 5 : Introducción al lenguaje R- continuación 7. Programación de funciones Hemos visto cómo utilizar scripts para ejecutar varios comandos. Veremos en lo que sigue cómo escribir funciones de manera de facilitar los pasos en un procedimiento. 7.1 Instrucciones de control de flujo R incluye las instrucciones de control de flujo habituales de los lenguajes de programación. Estas incluyen (la sintaxis puede obtenerse mediante ?Control ): if if else for while repeat break next Muchas de estas instrucciones requieren la evaluación de una declaración lógica y estas declaraciones pueden ser expresadas mediante operadores lógicos Operador Significado == Igual a != No igual a < , <= Menor que, menor o igual a > , >= Mayor que, mayor o igual a && Y lógico ( AND) || O lógico ( OR ) Veamos algunos ejemplos. Función if() : > x <- rnorm(1) > if(x > 2) print("Este valor es mayor que el 97.72 percentil") Si la expresión, que es el argumento de la función, es verdadera se ejecuta la instrucción que está escrita a continuación. Es decir, si el valor contenido en la variable x es mayor a 2, aparece en pantalla el texto que figura entre comillas como argumento de la función print() : Función for() : En el ejemplo siguiente indicamos primero que x y z son vectores. Luego los generamos de longitud 100 con contenido determinado por las asignaciones que
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays TP5 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 51 Dra. Diana M. Kelmansky se encuentran entrellaves. Las llaves {} son necesarias pues se debe evaluar más de una expresión. > n <- 50 > x <- vector( ) # inicializamos el vector > z <- vector( ) # inicializamos el vector > for(i in 1:100) { + x[i] <- mean(rexp(n, rate = .5)) + z[i] <- (x[i] - 2)/sqrt(2/n) + } Función while() : Construimos un estimador de Monte Carlo (MC) del número π . El área del cuadrado es 4 y el del círculo inscripto es π (ver figura anterior). Por lo tanto, si generamos puntos al azar en el cuadrado de vértices (1,1), (1,-1), (-1,1) y (-1,-1), la probabilidad que uno de ellos caiga dentro del círculo con centro en el origen (0,0) y radio 1 es p = π /4. En el código escrito más abajo, n es la cantidad de puntos generados y s la cantidad de observaciones contenidas en el círculo unitario. Luego, s/n es la estimación por MC de la probabilidad p y 4*s/n es la estimación por MC de π . Se detiene el procedimiento cuando estamos a lo sumo a una distancia de .001 del verdadero valor. Como se trata de una estimación por MC, tanto la estimación como la cantidad de pasos serán diferentes cada vez que se ejecuta el código. eps <- 1; s <- 0; n <- 0 # initializa los valores > while(eps > .001) { + n <- n + 1 + x <- runif(1,-1,1) + y <- runif(1,-1,1) + if(x^2 + y^2 < 1) s <- s + 1 + pihat <- 4*s/n + eps = abs(pihat - pi) + } > pihat # esta es nuestra estimación [1] 3.141104 > n # estos son la cantidad de pasos que se realizaron [1] 326 7.2 Formato Función Tal vez uno de los aspectos más poderosos del lenguaje R es que permite que el/la usuario/a escriba sus propias funciones. Muchos cálculos pueden incorporarse a una única
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}