Ejemplo de aplicación
Supongamos que la siguiente muestra representa los sueldos de 100 médicos del sector salud. El sindicato de trabajadores de la salud tiene programado una huelga pidiendo un incremento en sus ingresos del próximo año. Para verificar si tienen razón en sus reclamos, el ministro de la salud, le solicita a Ud. para hacerle entrega de un informe estadístico de sus ingresos a fin de incluir o no un incremento en el presupuesto del siguiente año.
Generamos los 100 datos de manera aleatoria:
>d = c(sample(380:540,100,replace = TRUE))*10 # Se puede usar rep en lugar de replace
Podemos visualizar los datos: >d
Para construir una tabla de frecuencia vamos a instalar un nuevo packages: fdth
En la barra de comandos, haga clic en [Paquetes]. De la lista, seleccione [Brazil(pr)(https)] - [Ok] . Puede ser otros.
Ahora usamos:
[Paquetes] - [Cargar paquetes]. Seleccione [fdth] - [Ok]
Construimos la tabla de frecuencia y la dejamos en la variable (en realidad es un objeto), tf1
>tf1=fdt(d)
Visualizamos su contenido
>tf1
La siguiente imagen nos muestra la tabla obtenida.
Observaciones:
Hay 11 médicos cuyos ingresos están entre 4426 y 4628 ó 4628 y 4829
Hay más de 50 médicos con ingresos superiores a 4628 soles
El ingreso mínimo de un médico es: min(d) y el máximo: max(d)
El ingreso medio es: mean(d)
La mediana de los ingresos es: median(d). Esto significa que más del 50% de los médicos tienen un ingreso superior a: median(d). (4680, que es lo que dedujimos por aprox. en la tabla).
Los cuartiles son:
quantile(d)
La siguiente imagen nos muestra los quartiles y los extremos
Esto significa que, el 25% de los médicos con ingreso mínimo alcanzan un máximo de 4255.
El 75% de los médicos tiene un ingreso mínimo de 4255 soles.
Observamos que los ingresos mensuales son bastantes homogéneos, con una varianza:
>var(d) y una desviación de >sd(d).
Si bien parecen muy grandes, la homogeneidad dice lo contrario y ésta la podemos obtener con >cvar = sd(d)/mean(d)
Como este es 0.09774524, los ingresos mensuales de los médicos presentan una variabilidad del 9.77%, lo cual indica que es bastante homogéneo.
Su histograma lo ratifica: >hist(d).
Este histograma es obtenido usando la regla de Sturges para el número de intervalos.
Para obtener la tabla de frecuencia usando Sturges, pudimos haber usado
>tf1=fdt(d,breaks=”Sturges”)
Ahora queremos una tabla de frecuencia de 5 clases
Para ello necesitamos calcular la amplitud de clase:
>c=(max(d)-min(d))/5
Construimos la tabla, modificando el inicio y final de los datos:
>tf2=fdt(d,start=3820,end=5835,h=c)
Lo visualizamos:
>tf2
Si se desea una tabla de frecuencia de 5 intervalos:
>tf3=fdt(d,k=5)
Más sencillo y directo.
Si tiene extensión csv
> datos=read.table("c:\\datosr\\pagos.csv",header=T,sep=";")
Si tiene extensión txt
> datos=read.table("c:\\datosr\\pagos.txt",header=T,sep=";")
Si el separador fuera el tabulador, entonces el comando es
> datos=read.table("c:\\datosr\\costocasa.txt",header=T,sep="\t")
Un archivo de tipo texto también se puede leer con
> read.delim("c:\\datosr\\pagos.txt",header=T,sep=";")
Ahora vamos a leer el archivo de extensión CSV
> datos=read.csv("c:\\datosr\\pagos.csv",header=T,sep=";")
Para referirnos a cada una de las columnas en forma individual, usaremos datos$columna; por ejemplo: datos$genero, datos$estudio, datos$nhijos.
Conteo por niveles:
>summary(datos$genero)
>summary(datos$estudio)
>summary(datos$nhijos)
Podemos tener los histogramas simples de cada uno de ellos
>hist(datos$genero)
>hist(datos$nhijos)
Algo más sobre histogramas
Para que las barras tengan un color de borde:
< >hist(datos$nhijos, border="RED")
Para color de relleno de las barras:
>hist(datos$nhijos, col="GREEN")
Para colocar como etiqueta las frecuencias absolutas:
>hist(datos$nhijos, labell=TRUE)
Todo lo anterior
>hist(datos$nhijos, col="GREEN",border="RED",label=TRUE)
Con la variable pagos
> hist(datos$pagos, col="GREEn",border="RED",label=TRUE)
Ahora vamos separar cada columna en otras variables:
>p=pagos$pagos
Puede ser también >p=c(datos$pagos)
>g=datos$genero
Pero >g=c(datos$genero)
Codifica los datos en categóricos u ordinales.
Añadir cabecera a las columnas
Si los datos leídos no tienen nombre o cabecera de columna, se puede insertar de la siguiente manera:
Definimos una variable con los nombres: >h=c(“Pagos”,”Genero”,”Estudio”,”Nhijos”)
Ahora leemos los datos
> datos=read.table("c:\\datosr\\noname.csv",col.names=h,sep=";")
Guardar una tabla como archivo
Para ello usamos la sentencia write.table
> write.table(datos,"c:\\datosr\\nuevo.txt",col.names=TRUE,sep=",")
Revise la carpeta para ver el archivo creado.
Finalmente, COPY/PASTE
Seleccionamos los datos desde donde se encuentren, Excel, Word. Lo copiamos
En R ingresamos el siguiente comando:
>d=read.delim(“clipboard”)
Ahora podemos hallar la suma, varianza, pero no la media
>sum(d)
>var(d)
Para la media, ver cuántos datos hay y luego >sum(d)/11
Para la desviación estándar> >sqrt(var(d))
Un resumen descriptivo con >summary(d)
Continuaremos en la siguiente sesión