0% encontró este documento útil (0 votos)
5 vistas10 páginas

Introducción A R.

.

Cargado por

Eugenia Martinez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas10 páginas

Introducción A R.

.

Cargado por

Eugenia Martinez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF o lee en línea desde Scribd
Introduccién a R Aplicacién de Programas Informaticos 2022-09-11 MODULO II: BIOESTADISTICA Clase 1: Introducci6n aR + [Link] lenguaje de programacién. + Instalacién de R ([Link] y sus caracteristicas Instalacién deRStudio (https:/[Link]/products/rstudio/download/) IDE (Integrated Development Environment) (desde octubre 2022 “posit’) y sus caracteristicas Ventajas y desventajas del uso de RStudio + Softwares para andlisis de datos: libres, abiertos y con licenci Primeros pasos Personalizacion Directorios de trabajo Proyectos Céddigo Asignacion Los operadores de asignacién en R permiten asignar datos a un objeto para almacenar los datos. <- asignacién izquierda = Asignacién izquierda ( menos recomendado en R) y asignacién de argumentos Ejecutar codigo Para ejecutar una linea o bloque de cédigo se puede realizar desde el teclado presionando cTaL + ENTER o con el icono Run en parte superior derecha de la ventana de Script. Objetos En términos genéricos todos los elementos que maneja R son objetos: un valor numérico, un vector, una funcién, una base de datos, un gréfico, etc. Para realizar un uso eficiente de R es preciso entender y aprender a manipular bien las distintas clases de objetos que maneja el programa R utiliza, de hecho, programacién orientada a objetos. Ello significa que una misma funcién hace cosas distintas segiin la clase del objeto que recibe como argumento, pudiendo incluso no hacer nada (0 producir un error) si se le pasan argumentos de una clase inadecuada. Clases de objetos Los diferentes objetos dependen principalmente de cémo estén compuestos, es decir qué tipo de variable se esta utilizando. Si es un nuimero, el tipo es “numérico” xe8 3 s=8.7 Una palabra, es un caracter. vector" Sies una conjuntos de datos, ya sean numéricos y/o caracteres, ese conjunto es un vector. Que se llama “atémico” si es numérico tinicamente. Por ejemplo: altura = ¢(1-8,1.9,1.7,1.68,1.72,1.57) 'fresno", "mora" ,"alano") especie = ¢("mora”,"alano","fresno”, Para generar una tabla con los objetos creados utilizamos la funcién cbind datos = cbind (especie,altura); datos a especie altura "mora" "2.8" ## (2 HH [2 #8 (3 a (4, ## [5 8 [6 ‘A medida que se ingresan los abjetos, R los va asignando a Values en su memoria. De ésta manera, se va llevando un registro de los objetos creados. Cuando queremos observar lo que contienen dichos objetos debemos llamarlos. Lo podemos realizar de diferentes maneras: corriendo sélo el nombre del objeto; si es una tabla con la sentencia View() © print() definiendo como argumento el objeto a observar; 0 si queremos verlo al generarlo, para evitar una linea en el script, se coloca el nombre del objeto a continuacién de una sentencia separandolé por Para que no tome los valores de cada columna como datos aisiados, debemos determinar que la tabla es un data frame, es decir, que es una base de datos (relaciona datos categérico y/o numéricas). Primero, debemos conocer si el objeto es una data frame (o un niimero, un caracter, etc) preguntando con la funcién [Link]. frame() , respondiendo la funcién por TRUE 0 FALSE. Para cambiar el estado de un objeto a otro, se utiliza la funcién [Link]() . En nuestro ejemplo, todos los valores aparecen como caracteres. [Link]. frame (datos) ## [2] FALSE datosedata. frane(datos) [Link](datos$especie) we [2] TRUE [Link](datos$altura) we [2] TRUE is numeric(datos$altura) #8 [2] FALSE datos$altura s numeric(datos$altura) [Link](datos$altura) a [1] TRUE Subconjunto de un data frame o lista con nombres Se utiliza el operador § para seleccionar una variable de una tabla de datos datos$altura i [1] 1.82 1.90 1.78 1.68 1.72 1.57 Hay varias funciones que pueden imprimir el tipo de dato de un objeto de R. Estas incluyen: typeof , mode , storage. mode, class y ‘str Estructura del objeto str(s) #8 nun 5 str(altura) #8 num [1:6] 1.8 1.9 1.7 1.68 1.72 1.57 ###Errores comunes R distingue entre mayuisculas y minusculas, por lo tanto el objeto datos es diferente al objeto Datos. Hay algunas reglas a la hora de nombrar variables. Puedes usar letras, numeros, puntos y guiones bajos en el nombre de la variable, pero los guiones bajos no pueden ser el primer caracter de! nombre de la variable. ‘También hay palabras reservadas que no se pueden usar, como TRUE, FALSE, NULL, entre otras, Puedes ver la lista completa de palabras reservadas escribiendo help(Reserved) 0 ?Reserved en la consola de comandos. ##lInstalacién de paquetes Un paquete de R es una biblioteca de funciones que se han desarrollado para cubrir algunas necesidades 0 métodos cientificos especificos que no estan implementados en las funciones de R base. Las funciones que R proporciona de manera predeterminada son limitadas, por lo que es posible que te preguntes cémo instalar nuevos paquetes en R. Hay diferentes formas de instalacién * Directamente en la consola install. packages("nonbre", dependencies=TRUE) + Mediante de la ventana se RStudio que tiene las pestafas Files, Plots, Packages, Help, Viewer y en la ventana emergente buscar el paquete por su nombre. Para utilizar una libreria debemos llamarla mediante library Library(reséxd) Obtener los datos &Como creamos nuestra Base de Datos en R? Si son pocos datos: Introducir los datos directamente en la consola de R. Si son muchos datos: Podemos utilizar casi cualquier soporte: + Excel + SPSS + PSPP + Libreoffice Cale + Access: + MySQL Dataset de base Importar archivos Archivos de texto .txt El lenguaje de programacién R permite cargar archivos TXT. La funcién més basica para ello es la funcién read. table . Importar archivos TXT en R rara vez necesita mas argumentos de los especificados a continuacién. Aun asi, si resultan de interés conocer todos los argumentos, se encuentran en la documentacién de la funcién [Link] o llamando a la ayuda de la funcién con ?[Link] . Esta sintaxis basica afecta a casi todos los archivos de datos TXT. [Link](file, #Archivo de datos TXT indicado como string o ruta completa al ar chivo header = FALSE, Si se muestra el encabezado (TRUE) 0 no (FALSE) sep #Separador de las columnas del archivo dec #Caracter utilizado para separar decimales de los nimeros en el archivo Siel archivo objetivo se llama mi_archivo.txt y que esté guardado en el directorio de trabajo, puede lleerse con el siguiente cédigo: data <- [Link](file head(data) 'mi_archivo.txt", header = TRUE) Pero si el archivo se encuentra en otro directorio se debe indicar la ruta de acceso al mismo. data <- [Link](file = "C:\\Mi_ruta\\ni_archivo.txt", header = TRUE) data <- [Link](file = "C:/Mi_ruta/mi_archivo.txt", header = TRUE) #Equivalente Archivos .csv Es habitual encontrar conjuntos de datos en formato CSV (valores separados por comas). Este tipo de almacenamiento de datos es una solucién ligera para la mayoria de los casos. La lectura de este tipo de datos se importan con las funciones [Link] y read.csv2 . La sintaxis basica de las funciones con los, argumentos mas comunes se encuentra a continuacién. Para obtener detalles adicionales, recuerda escribir [Link] 0 ?read.csv2 Por defecto coma (,) como separador y punto (.) como separador decimal [Link](file, Nonbre del archivo o ruta completa del archivo header = TRUE, Leer el encabezado (TRUE) 0 no (FALSE) sep="5"5 #Separador de los valores dec = "." Punto decimal [Link] = "", #Cardcter de los comentarios o cadenas vacfas encoding = “unknown”, #Codificacién del archivo 2) ‘#Argunentos adicionales Por defecto punto y coma (;) como separador y coma (,) como separador decimal read.csv2(file, header = TRUE, sep tra manera es importar desde el archivo en el directorio, de esta manera el RStudio plantea el script para llamar a estos archivos. Archivos Excel Para trabajar con datos de Excel en R deberds usar un paquete readxl. Hay varias opciones, pero los mejores paquetes para leer archivos de Excel podrian ser openxisx y readxl. Si estés usando RStudio puedes ir a File —+ Import Dataset + From Excel... Luego, selecciona tu archivo de Excel dandole a Browse... y personaliza la salida (el nombre de la variable, la hoja, el rango de celdas, ...). También puedes ver una vista previa del cédigo que se ejecutara de fondo. El paquete readx! forma parte del paquete tidyverse, creado por Hadley Wickham (cientifico jefe en RStudio) y su equipo. [Link]("readxl") Library(readx1) Obtener la ruta de un archivo XLSX de ejemplo del paquete ruta_archivo < readxl_example(“[Link]’) # Comprobar los nombres de 1as hojas del archivo excel_sheets(ruta_archivo) # "list-column” "two-row-header” La funcién genérica del paquete para leer archivos de Excel en R es la funcién read_excel, que ‘adivina’ el tipo de archivo (XLS 0 XLSX) segiin la extensién del archivo y el archivo en si, en ese orden. read_excel (ruta_archivo) El argumento sheet permite especificar la hoja que quieres cargar, pasando su nombre o el numero correspondiente de la pestafia. Ten en cuenta que, por defecto, la funcién carga la primera hoja de Excel, Seleccionamos 1a otra hoja del Excel read_excel(ruta_archivo, sheet = “two-row-header”) read_excel(ruta_archivo, sheet = 2) # Equivalente Database del R Ry sus paquetes tienen bases de datos para practicar las diferentes sentencias. Vamos a tomar la base “iris” para comenzar a trabajar la parte estadistica, Manejo de Datos Un paso crucial cuando se trabaja con datos es convertir los datos originales (por lo general sin formato ‘adecuado para el andlisis) en un formato apropiado para trabajar. Aprenderas a clasificar, ordenar, crear subconjuntos y dividir los datos, Ordenar Ordenar datos en el lenguaje de programacién R se puede lograr de varias maneras, dependiendo de cémo quieras ordenarlos. Lafuncién order en R La funcién order devuelve una permutacién del orden de los elementos de un vector. La sintaxis con descripciones resumidas de los argumentos es la siguiente: order(x, # Secuencia de vectores de 1a misma longitud decreasing = FALSE, # Ordenar en orden creciente (FALSE) o decreciente (TRUE) [Link] = TRUE, # Poner valores NA al final (TRUE) 0 al principio (F ALSE) method = c("auto", » “radix")) # Método usado. List(x, # Vector decreasing = FALSE, partial = NULL, # Vector de indices para ordenado parc jal [Link] = TRUE, method = c("auto", "shell", "quick", “radix")) Subsets de datos Crear subconjuntos de datos en R se puede lograr de diferentes maneras, dependiendo de los datos con los que estés trabajando. En general, puedes crear un subconjunto: 1. Usando corchetes []. 2. Usando el signo § si los elementos del objeto tienen nombres. 3. Con funciones, como el comando subset , para obtener subconjuntos basados en condiciones légicas. datos[,1] # selecciona La primera colunna del conjunto datos w# [1] “mora” “alamo” "fresni datos[3,] # selecciona el tercer registro del conjunto datos especie altura #3 fresno 1.7 Generar funciones El lenguaje de programacién R permite al usuario crear sus propias funciones. Es necesario conocer ciertos conceptos cémo escribir funciones en R, cémo es la sintaxis, los argumentos, la salida, cémo utilizar la funcién return y cémo hacer un uso correcto de los parametros opcionales, adicionales y los argumentos predeterminados. éComo crear funciones en R? Las funciones base de R no siempre cubren todas nuestras necesidades. Para escribir una funcién en R, primero necesitamos saber cémo es la sintaxis del comando function, La sintaxis basica de una funcién de R #8 la siguiente. nonbre_funcion <- function(argi, arg2, .-. ) { # Cédigo De la funcién se deduce que: - arg1, arg2, ... son los argumentos de entrada. - #Cédigo representa el cédigo a ser ejecutado dentro de la funcién para obtener la salida desada. La salida de la funcién puede ser un nimero, una lista, un data frame, un grafico, un mensaje 0 cualquier objeto que queramos. También podemos asignarle a la salida alguna clase, pero hablaremos sobre ello en un articulo especifico sobre las clases S3. Esto titimo es especialmente interesante a la hora de escribir funciones para paquetes de R. ##Creando una funcién en R ###Variables locales y globales en R En R no es necesario declarar las variables utiizadas dentro de una funcién. La regla llamada “Ambito lexicografico” se usa para decidir si un objeto es local a una funcién o global. Considera el siguiente ejemplo: fun <- function() { print(x) xed fun() #1 ae (2) a La variable x no se define dentro de fun, por lo que R buscara x dentro del ambito “circundante” e imprimir su valor. Si x se usa como el nombre de un objeto dentro de la funcién, el valor de x en el entormno global (fuera de la funcién) no cambia. xed fun2 <- function() { x2 print (x) funa() #2 aH [2] 2 x #1 aH (2) 2 Para cambiar el valor global de una variable dentro de una funcién, puedes usar el operador de doble asignacién (<<-) xed yes fun3 <- function() { xe 2 yee 5 print(paste(x, y)) fun3() #25 at [2] "2 5) x #1 (el valor no cambié) we (2) 2 y #5 (el valor cambis) #8 (2) 5 Ejemplo: Lanzando un dado La siguiente funcién simula n (por defecto n = 100) lanzamientos de un dado. La fun frecuencias y el grafico correspondiente. n devuelve la tabla de dado <- function(n = 100){ lanzamientos <- sanple(1:6, n, rep = T) frecuencias <- table(lanzamientos)/n barplot(frecuencias, main = “") abline(h = 1/6, col = "red", Ind = 2) return(frecuencias) ? ‘Se puede ver los resultados de simulacién ejecutando la funcién. par(mfcol = ¢(1, 3)) dado(100) i lanzamientos Wo. 2 3 4 5 6 HH @.18 0.17 0.14 0.18 0.20 0.13 dado(se0) 4 lanzamientos mw oo4 2 3 4 $ 6 8 0.192 0.166 0.154 0.128 0.170 0.198 dado(100000) 8 8 3 = g 5 z 123656 123456 12345 ## lanzamientos He 1 2 3 4 5 6 Wi 0.16732 0.16816 0.16605 0.16610 0.16584 0.16653, ‘Como se observa, a medida que aumentamos n estamos mas cerca del valor teérico 1/6 = 0.1667.

También podría gustarte