Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Introduccion 1 � Introduccion Tipo Anotaciones Etiquetas R studio es mas amigable que R Las vbles no pueden comenzar con un numero Comandos “rmˮ borra vbles, ej rm(ventas) Para correr el codigo presionamos “ctrlˮ + “enterˮ ventas = c(200,210,230,260,290,350 la “c ,ˮ se usa para concatenar Introduccion 2 Baja 1 unidad a todos los elementos del vector con “plotˮ graficamos las vbles De sea manera redondeamos el numero Comando seq en ese caso es una secuencia, de 100 hasta 500, de 50 en 50 de 20 a 70, mostrando solo 3 elementos comando rep en el primer caso se repite 5 veces el 100 en el segundo caso se repite la secuencia de 100 a 104 2 veces en el tercer caso se repite 3 veces 100, 101, 102, 103 y 104 Introduccion 3 En este caso vemos la repeticion de la secuencia de 100 a 104, pero, repitiendo al 100 2 veces, al 101 1 vez y asi sucesivamente. En el segundo caso es similar, no hay una secuencia sino un vector al que establecemos la cantidad de veces que se repite cada numero En este caso guardamos los caracteres en una vble, y posteriormente lo repetimos en las veces que lo establecemos Comando paste Esto esta bueno para rotular, la salida seria “categoria + el num siguiente o el caracter “ Introduccion 4 Factores Los factores son una combinacion de vectores numericos, con etiquetas, por ejemplo: contribuyentes = factor(c(2,1,1,2,3,1,4,2,3,1,4, labels=c("RI","EX","RS","RNI")) En ese caso, se etiquetan los numeros utilizados, el 1 es “RI ,ˮ el 2 es “EXˮ y asi sucesivamente. La salida entonces seria: > contribuyentes = factor(c(2,1,1,2,3,1,4,2,3,1,4),labels=c ("RI","EX","RS","RNI")) > contribuyentes [1] EX RI RI EX RS RI RNI EX RS RI RNI En un factor, incorporando “orderedˮ le agregamos un orden a los niveles creados, de la siguiente manera intensidad← ordered(c(0,1,2,3,2,3,1,0, labels=c("Baja", "Leve", "Alta", "Intensa")) > intensidad<- ordered(c(0,1,2,3,2,3,1,0), labels=c("Baja", "Leve", "Alta", "Intensa")) > intensidad [1] Baja Leve Alta Intensa Alta Intensa Leve Baja Levels: Baja < Leve < Alta < Intensa Matrices Introduccion 5 Gralmente son datos numericos. Se utiliza el comando “matrixˮ > matrix(data=1000, nr=3, nc=2) [,1] [,2] [1,] 1000 1000 [2,] 1000 1000 [3,] 1000 1000 > matrix(data=c(100,200,500,800,900,1000),nr=2,nc=3) [,1] [,2] [,3] [1,] 100 500 900 [2,] 200 800 1000 En el primer caso, el dato es “1000 ,ˮ y se le pasa que se lo tiene que ordenar en 3 filas y 2 columnas. En el segundo caso, se le pasa un vector, que se ordena columna por columna, en este caso, los 2 primeros numeros llenan la primer columna, los otros 2 la segunda y asi, eso es por defecto. No hace falta enunciar todo, solo basca con poner los datos ordenados, por ejemplo: > matrix(1:10, 2, 5) [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 7 9 [2,] 2 4 6 8 10 otro caso: > matrix(1:10, 2, 5, byrow=T) [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 6 7 8 9 10 agregando “byrow=T ,ˮ rellenamos primero las filas Con el comando “dimˮ vemos las dimensiones de cada variable. Introduccion 6 POr ejemplo, a la variable costos que tenia varios elementos: dim(costos) = c(2, 3) Tenia una dimension, y con ese vector lo hacemos de 2 dimensiones > costos [,1] [,2] [,3] [1,] 152 202 228 [2,] 199 211 248 Si queremos manipular una vble, la renombramos y modificamos esa que renombramos, de este modo tendremos 2 vbles, la original y la renombrada Si queremos eliminar una columna o fila de una matriz hacemos lo siguiente: cto = cto [ ,-c(2)] > cto = costos > cto [,1] [,2] [,3] [1,] 152 202 228 [2,] 199 211 248 > cto = cto [ ,-c(2)] > cto [,1] [,2] [1,] 152 228 [2,] 199 248 De esa manera, eliminamos la segunda columna de “cto .ˮ Tmb se pueden asignar nombres a las filas y matrices, de la siguiente forma: rownames(costos)← paste("Fila", 12 colnames(costos)← paste("Columna", 13 > # Asignar nombre a las filas y columnas de matriz > rownames(costos)<- paste("Fila", 1:2) > colnames(costos)<- paste("Columna", 1:3) > costos Introduccion 7 Columna 1 Columna 2 Columna 3 Fila 1 152 202 228 Fila 2 199 211 248 Unir matrices Una funcion interesante es unir matrices, que puede ser el caso cuando tengoamos un conjunto de datos y quieramos agregar una columna o una fila nueva. el comando “rbindˮ adiciona filas y “cbindˮ adiciona columnas > rbind(costos, utilidad) Columna 1 Columna 2 Columna 3 Fila 1 152 202 228 Fila 2 199 211 248 Fila 3 90 100 110 Fila 4 95 105 120 > cbind(costos, utilidad) Columna 1 Columna 2 Columna 3 Columna 4 Columna 5 Colum Fila 1 152 202 228 90 100 Fila 2 199 211 248 95 105 Dataframes Los dataframes son matrices pero con diversos caracteres, numeros, letras, etc > vtaunit=c(10,15,19,20,30,36) > costounit=c(15,20) > data.frame(vtaunit,costounit) vtaunit costounit 1 10 15 2 15 20 3 19 15 4 20 20 Introduccion 8 5 30 15 6 36 20 En ese caso, repite el vector de menos espacios las veces que sean necesarias > marco=data.frame(Vta_Unitario=vtaunit,Costo_Unitario=cost ounit) > row.names(marco)<-paste("Producto", 1:6) > marco Vta_Unitario Costo_Unitario Producto 1 10 15 Producto 2 15 20 Producto 3 19 15 Producto 4 20 20 Producto 5 30 15 Producto 6 36 20 En ese caso, el dataframe ordena las vbles en columnas (siempre lo hace por defecto), posteriormente le damos un nombre a las columnas y luego a las filas Listas Las listas arman listas separadas de cada elemento fix La funcion “fix ,ˮ es de la mas importantes para mi, con esta funcion, podemos modificar el dataframe directamente desde un cuadro, haciendo las modificaciones muy sencillas y visuales Introduccion 9 Para modificar, solo seleccionamos la casilla a modificar, modificacmos y damos a escape, ahi ya esta IMPORTACION DE DATOS Desde el PortaPapeles informacion=read.delim("clipboard", row.names=1, dec=",", header T, stringsAsFactors T Con eso lo que hacemos al darle el “clipboardˮ es que copie desde el portapapeles, le indicamos que ignore la primera columna, que se usan “,ˮ para los decimales, que la tabla tiene encabezado y que las celdas con caracteres sean consideradas como factores Lectura archivo (Varables separada por coma) - Fijar Directorio Trabajo info←read.csv("inform.csv", sep=";", dec=",", header=T, stringsAsFactors T, row.names 1 Introduccion 10 Para leer el archivo csv, hay que fijar el directorio de trabajo, el programa tienen que saber a donde ir a buscar la info, para eso En session, chosee directory, elegimos la carpeta donde estamos trabajando setwd("C:/Users/Enzo/Desktop/ENZO/Cursos/Introduccion en R/Modulo 1/Bases de datos- 20231105") Ahi fijamos el directorio # Lectura Archivo Environment Import Dataset Tambien podemos importar desde import dataset: Ahora: Introduccion 11 Del dataframe info, buscamos la columna departamento “info$departamento ,ˮ y se muestra con el “attach ,ˮ es como que invocamos la base de datos, despues en la vble “mas3pˮ lo que hacemos es una vble con las filas donde la columna cursado sea mayor a 3, y todas las columnas En “mas4pˮ esto cambia, ya que solo mostramos las columnas 1,4 y 6 Otra forma de seleccionar es con “subsetˮ En este caso, se debe poner la base de datos dentro del argumento b←subset(info, Carrera=="CPN" | Carrera=="LAE") el operador “|ˮ significa el operador “oˮ Introduccion 12 Reemplazar valor "" en Empleador por NA, dato perdido. informacion$Empleador[informacion$Empleador==""NAEn ese caso, dentro de informacion, buscamos en “empleador ,ˮ y decimos que a las celdas vacias “ ,ˮ las cambie a NA Ordenar por Departamento y por Inmuebles, orden ascendente info[order(Departamento,Inmuebles),] info[order(Departamento,Inmuebles, decreasing=T, Ahi vemos la ventaja de attachar, es un atajo Modificar Escala en varias columnas info.num←info[,c(58)] linfo.num ←log(info.num) Ahi le agregamos log a toda la base de datos Estandarización de datos sinfo.num ← scale(info.num, scale=F, center=T sinfo.num Introduccion 13 Ahora podemos convertir esa matriz creada en dataframe de la siguiente manera: sol = as.data.frame(sinfo.num) Seleccion de muestras muestra1←mas3pro[sample(20),] Ahi seleccionamos 20 muestras aleatorias de esa columna Crear un factor a partir de una variable numerica summary(info$Inmuebles) con sumari vemos summary(info$Inmuebles) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.000 1.000 1.000 1.962 2.000 8.000 info$Capacidad←cut(info$Inmueble, breaks=c(0,2,5,max(info$Inmuebles)), right=T, labels = c(paste("Capacidad", 13 Eso quiere decir que hacemos un corte en inmueble, de 0 a 2, de 2 a 5 y de 5 a max, que se llamara capacidad y va del 1 al 3 Es muy importante que los caracteres se conviertan a factor para ver la siguiente informacion: > summary(info) Departamento Carrera Oran : 17 Profesor Historia :39 Curso Po La Poma : 16 Profesor Literatura :39 Doctorado Rosario de Lerma: 14 Lic Analista Sistemas :29 Especiali Molinos : 13 Periodismo :24 Maestria Chicoana : 12 Lic. Comunicaciones :18 Postitulo Coronel Moldes : 12 Lic. Recursos Naturales:18 Introduccion 14 (Other) :176 (Other) :93 Universidad Cursado Superficie Inmueble Extranjera:63 Min. : 1.000 Min. : 55.0 Min. :0.0 Local :63 1st Qu.: 3.000 1st Qu.: 198.0 1st Qu.:1.0 Nacional :20 Median : 4.000 Median : 299.8 Median :1.0 Privada :54 Mean : 4.495 Mean : 468.9 Mean :1.9 Provincial:60 3rd Qu.: 5.450 3rd Qu.: 550.0 3rd Qu.:2.0 Max. :10.000 Max. :2750.0 Max. :8.0 Ingresos Empleador Propiedad Modalid Min. : 18000 No:226 Min. : 0.0 : 1st Qu.: 165000 Si: 34 1st Qu.: 0.0 A Distancia :1 Median : 270000 Median : 10.0 Presencial : Mean : 386255 Mean : 44.4 Semi Presencial:1 3rd Qu.: 500000 3rd Qu.:100.0 Max. :2500000 Max. :100.0 NA's :1 Empresa Tipo Sucursales Local C.I. :40 Comercio :66 Min. :0.0000 : 2 Otro :17 Digital :67 1st Qu.:0.0000 No:126 S.A. :40 Profesional:64 Median :0.0000 Si:132 S.A.S. :46 Servicios :63 Mean :0.5363 S.H. :50 3rd Qu.:1.0000 S.R.L. :40 Max. :4.0000 Unipersonal:27 NA's :12 Contribuyente prom.superficie log.superficie Exento :76 Min. : 55.0 Min. :4.007 No inscripto :45 1st Qu.:110.0 1st Qu.:5.288 Regimen Simplificado :68 Median :195.2 Median :5.703 Responsable inscripto:71 Mean : Inf Mean :5.818 3rd Qu.:305.4 3rd Qu.:6.310 Max. : Inf Max. :7.919 Capacidad Capacidad 1:198 Capacidad 2: 53 Capacidad 3: 8 NA's : 1 Introduccion 15 Función by (version actual) Genera summary clasificada por factor by(info[,58],list(info$Carrera), summary) Ahi hago un resumen por carrera
Compartir