Trabajo - Grupo 0 1
Trabajo - Grupo 0 1
Trabajo - Grupo 0 1
corrupción e impunidad”
FACULTAD DE CIENCIAS
DOCENTE:
Mg. Pintado
ESCUELA:
Estadística
CURSO:
Estadística Computacional I
TEMA:
EL SOFTWARE R (Capítulo I, II y III)
INTEGRANTES:
Ojeda Silupu Jairon
Salinas Juarez Brenda Liduvina
Vilchez Mogollon Angie Valeria
Otero Jimenez Jose Alejandro
Zapata Adrianzen Jose Luis Jhonatan
Piura-peru
2019
INTRODUCCIÓN
2
1. COMANDOS Y CONCEPTOS BASICOS:
Una vez instale R en su computador, el programa se puede iniciar corriendo el
archivo ejecutable correspondiente. El cursor, que por defecto es el símbolo ‘>’,
indica que R está listo para recibir un comando.
De hecho, cuando se utiliza R por primera vez, es muy útil tener una idea
general de cómo funciona y eso es precisamente lo que vamos hacer ahora.
Como primera medida, veremos brevemente como funciona R. Posteriormente,
describiré el operador “asignar” el cual permite crear objetos en R, miraremos
como manejar estos ´ objetos en memoria, y finalmente veremos cómo usar la
ayuda en línea, la cual a diferencia de las ayudas en otros programas
estadísticos, es bastante útil e intuitiva. Aquí describimos únicamente la utilidad
específica de cada comando, para consultar la sintaxis precisa de cada uno de
ellos.
Obteniendo ayuda: Para obtener ayuda acerca de, por ejemplo, la función
plot, se podrían utilizar los siguientes comandos ?plot, help(plot),
help.search(plot). Los dos primeros son equivalentes y el tercero permite
realizar búsquedas más avanzadas. Además, también se pueden utilizar los
correspondientes elementos del menú help.
Case sensitivity: El lenguaje R es “case sensitive”, es decir, distingue entre
mayúsculas y minúsculas.
Robustez: El lenguaje R es un lenguaje robusto. En otras palabras intenta, en
la medida de lo posible, no dar mensajes de error. Esto en general es cómodo,
pero hay que tener cuidado, es posible que al ejecutar un comando no
obtengamos ningún error y sin embargo R no esté haciendo lo que nosotros
pretendíamos.
Importar código: El comando source(“comandos.R”) permite introducir
comandos procedentes de archivos. Útil para cargar funciones elaboradas por
el usuario o bien para ejecutar macros y scripts.
Exportar: El comando sink(“archivo”), nos permite que la salida de los
comandos posteriores se almacene en “archivo”. Para devolver la salida a la
pantalla se usa nuevamente el comando sink(). Usado principalmente para
guardar salidas de datos en archivos de texto.
Funciones: Para consultar el código de una función en R, ya sea una función
propia de R o bien una del usuario, basta con teclear el nombre en la línea de
comandos (sin paréntesis ni ningún tipo de argumentos).
Workspace: El comando getwd() nos devuelve el directorio de trabajo y el
comando setwd() nos permite modificarlo. Al iniciar el programa R se abre
3
automáticamente un espacio de trabajo, en el se almacenan todos los datos,
funciones... usadas durante esa sesión. En cualquier momento se pueden
guardar todos los objetos del espacio de trabajo como un archivo con
extensión “.RData” (men´u file). Como norma general, las funciones y objetos
de datos es mejor guardarlos en archivos propios; esto evita tener objetos
innecesarios en el “workspace”. La mejor forma de hacer esto será guardando
uno o varios objetos en un archivo (de extensi´on .RData) con el comando
save(objectos, file=“nombre.RData”). Si en sesiones posteriores se necesitan
se pueden cargar con la funci´on load().
Librerías: Al iniciar el programa R se cargan por defecto unas librerías
básicas. A veces es necesario cargar otras librerías para realizar ciertos
análisis, o llamar a algunas funciones “no básicas”. Esto se hace a través del
comando library(nombre).
Listados: El comando ls() nos proporciona un listado de los objetos que hay
actualmente en el espacio de trabajo. Para hacer búsquedas de objetos en el
espacio de trabajo se pueden utilizar los comandos apropos() y find(). Además,
el comando search() nos da una lista de las librerías cargadas (más adelante
veremos que no es lo único que lista este comando).
Borrado: Para eliminar uno o varios objetos del espacio de trabajo se usa el
comando rm(objectos).
Historial de comandos: Mediante el teclado (flechas) se puede acceder a los
´últimos comandos ejecutados. Además, el comando history() nos devuelve un
archivo de texto con los últimos comandos ejecutados.
4
objetos específicos de R, objetos pensados para ser manejados con
propósitos estadísticos.
2.1. VECTORES:
Función seq
>seq(10) #mismo efecto de 1:10
1 2 3 4 5 6 7 8 9 10
> seq(1,10, by=3) #saltando de 3 en 3
1 4 7 10
Función rep
> rep(1:4,2) #repetimos 1:4 dos veces.
12341234
> rep(1:4,each=2) #repetimos 1:4 dos veces,
#intercalando el resultado.
11223344
Podemos nombrar los elementos de un vector:
> v = c(45,43,56,48,51)
> names(v) <- c(“Lun”,”Mar”,”Mie”,”Jue”,”Vie”)
> v Lun Mar Mie Jue Vie
45 43 56 48 51
> names(v)
[1] “Lun” “Mar” “Mie” “Jue” “Vie”
5
Podemos utilizar sobre vectores las operaciones aritmético-lógicas
descritas en la sección anterior.
La operación devolverá otro vector con los resultados tras aplicar la
operación elemento a elemento.
v1 <- c(5,1,5)
v2 <- c(2,1,3)
v1 == v2
FALSE TRUE FALSE
v1 + v2
728
v1 == 5
TRUE FALSE TRUE
Algunas funciones útiles con vectores:
length(): Devuelve el tamaño de un vector.
v <- c(5,10,0,0,2) length(v) 5
min(), max(): Devuelven respectivamente el elemento mínimo y
máximo de un vector.
min(v)
0
max(v)
10
sum() : Suma todos los elementos de vector.
sum(v)
17
mean(), median() : Calculan respectivamente la media y la mediana
de los elementos de un vector.
mean(v)
3.4
median(v)
2
sort() : Ordena los elementos de un vector.
sort(v)
0 0 2 5 10
unique() : Devuelve un vector sin elementos repetidos.
unique(v)
5 10 0 2
which(): Recibe una expresión que devuelve un vector lógico y
devuelve los índices true del vector lógico.
v>3
TRUE TRUE FALSE FALSE FALSE
which(v>3)
12
6
which.max(), which.min(): Devuelven respectivamente los índices
de los elementos mínimo y máximo de un vector.
which.min(v)
3
which.max(v)
2
Usar la función ‘‘help’’ para más información.
Creaciones de matrices.
## [,1]
## [1,] 1
## [2,] 2
7
## [3,] 3
## [4,] 4
## [5,] 5
## [6,] 6
## [7,] 7
## [8,] 8
## [9,] 9
## [10,] 10
## [11,] 11
## [12,] 12
## [1] "matrix"
dim(mi_matriz)
## [1] 4 3
dim(mi_vector)
## NULL
# Resultado
mi_matriz
# Suma
mi_matriz + 1
9
## [,1] [,2] [,3]
## [1,] 2 5 8
## [2,] 3 6 9
## [3,] 4 7 10
# Multiplicación
mi_matriz * 2
# Potenciación
mi_matriz ^ 3
# Resultado
Matriz
## vector_1 NA 2 3
## vector_2 4 5 NA
matriz / 2
10
Finalmente, podemos usar la función t() para transponer una matriz,
es decir, rotarla 90°.Creamos una matriz con tres renglones y dos
columnas.
# Resultado
Matriz
## [,1] [,2]
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
# Resultado
matriz_t
[1,] 1 4 7
[2,] -2 -5 -8
[3,] -3 -6 -9
11
Suma de los elementos de cada una de las filas de A:
apply(A,1,sum)
-4 -7 -10
tapply(hijos,provf,mean)
co lu or po
3.000000 1.400000 3.000000 1.333333
2.5. Listas:
Para crear una lista usamos la función list(), que nos pedirá los
elementos que deseamos incluir en nuestra lista. Para esta
estructura, no importan las dimensiones o largo de los elementos
que queramos incluir en ella.
13
add=TRUE Fuerza a la función a actuar como si fuese de bajo nivel (intenta
superponerse a un grafico ya existente). Hay que tener cuidado, no sirve para
todas las funciones.
Los comandos de bajo nivel sirven para añadir información extra a los gráficos que
producen los comandos de alto nivel. Por ejemplo, podríamos querer añadir texto
a un gráfico, puntos extras, líneas. Entre los más importantes podemos destacar:
points(x,y) Añade puntos o líneas conectadas al gráfico actual
lines(x,y)
text(x,y,etiquetas) Añade texto al gráfico actual en la posición x,y.
abline(a,b) Añade una línea de pendiente a y que corta al origen en b
abline(h=y) Añade línea horizontal que corta al eje y en h=y
abline(v=x) Lo análogo para línea vertical.
polygon(x,y) Dibuja un polígono.
title(main,sub) Añade título y subtítulo al gráfico actual
axis(side) Añade ejes al gráfico actual (de 1 a 4).
Ejemplos:
Un ejemplo:
14
> boxplot(x) # Diagrama de caja de x
> qqnorm(x) # Gráfico cuantil-cuantil de x frente a la distribución normal
2.7. Programando en R
if (expr_1) {expr_2}
else {expr_5}
15
Depurando el código: Las funciones print() y cat() nos permiten imprimir
datos en pantalla durante la ejecución de un programa.
2.8. Funciones:
2.9. Librerías:
Librerías específicas
16
KernSmooth: Funciones para inferencia no paramétrica a través de
estimadores tipo núcleo.
Teclado: Edemas de las formas vistas hasta ahora para introducir datos
por teclado existen otras dos. La primera es la función scan(); después de
ejecutar la función hay que introducir los valores del vector separados por
espacios. La segunda , consiste en crear un vector, matriz... inicializado a
0 y después aplicarle la función data.entry() para abrir una hoja que nos
permite editar fácilmente el conjunto de datos.
17
Ejemplo 01
# Para asignar nombres a las filas de una matriz, vamos a utilizar la función
18
> Hyundai<-c(2,7,3,5)
> A<-cbind(A,Hyundai)
>A
Toyota Audi Nissan Hyundai
Blanco 5 4 14 2
Negro 7 1 3 7
Rojo 13 7 11 3
Azul 8 5 7 5
> A[1,]
Toyota Audi Nissan Hyundai
5 4 14 2
> A["Blanco",]
Toyota Audi Nissan Hyundai
5 4 14 2
>A[2:3,]
>A[,1:2]
Toyota Audi
Blanco 5 4
Negro 7 1
Rojo 13 7
Azul 8 5
19
Seleccionar sólo los Nissan y Hyundai azules
>A[4,3:4]
Nissan Hyundai
7 5
Agregar una nueva fila llamada Verde con los siguientes valores 4,5,2,1, 0
> Verde<-cbind(4, 5, 2, 1, 0)
> A<-rbind(A, Verde)
>A
>A[4:5,4:5]
Hyundai Kia
Azul 5 12
Verde 1 0
20
Toyota Audi Nissan Hyundai
Blanco 5 4 14 2
Negro 7 1 3 7
Rojo 13 7 11 3
Azul 8 5 7 5
Verde 4 5 2 1
> A<-A[-5,]
>A
Matriz A
> print(A)
Transpuesta de A
> t(A)
A + t(A)
21
> A+t(A)
A - t(A)
> A-t(A)
MULTIPLICACIÓN DE MATRICES
> A*t(A)
Toyota Audi Nissan Hyundai
Blanco 25 28 182 16
Negro 28 1 21 35
Rojo 182 21 121 21
Azul 16 35 21 25
Multiplicación matricial
> A%*%t(A)
Blanco Negro Rojo Azul
Blanco 241 95 253 168
Negro 95 108 152 117
Rojo 253 152 348 231
Azul 168 117 231 163
> det(A)
[1] 1420
22
Inversa de una matriz
> solve(A)
Blanco Negro Rojo Azul
Toyota -0.04788732 0.10985915 0.188732394 -0.24788732
Audi -0.09577465 -0.28028169 -0.122535211 0.50422535
Nissan 0.11408451 0.03239437 -0.008450704 -0.08591549
Hyundai 0.01267606 0.05915493 -0.167605634 0.21267606
Diagonal de A
> diag(A)
[1] 5 1 11 5
Diagonal de la inversa de A
> diag(solve(A))
[1] -0.047887324 -0.280281690 -0.008450704 0.212676056
23
EJEMPLO 02
24
47 54 55 58 60 65 75 77 82 85 89
1 1 1 2 1 2 2 1 1 1 1
> prop.table(tabla_peso)
47 54 55 58 60 65 75
0.07142857 0.07142857 0.07142857 0.14285714 0.07142857 0.14285714 0.1428
5714
77 82 85 89
> prop.table(tabla_nombre)
Representaciones graficas
GRAFICO CIRCULAR
25
GRAFICO DE BARRAS
> barplot(table(edad),col=c("yellow","white","green","orange","purple","red","pink"),
xlab="edad",ylab="frecuencias absolutas",main="diagrama de barras para la variab
le edad")
26
Histograma
27
MEDIDAS DE POSICION
> mean(peso)
[1] 67.5
> median(peso)
[1] 65
Entre las medidas de posición de tendencia no central, los cuantiles figuran entre l
as más utilizadas.
28
DATA.FRAMES(TENIENDO EN CUENTA LOS DATOS ANTERIORES)
Teniendo en cuenta los datos del ejemplo anterior
> dimnames(datos)<-list(c("Pepe","Ana","Manolo","Rafa","Maria","Aury","German",
"Celia","Carmen","Juan","Dani","Antonio","Belinda","Sara"),c("peso"
,"altura","edad","sexo")
> datos
peso altura edad sexo
Pepe 77 1.63 23 1
Ana 58 1.63 23 2
Manolo 89 1.85 26 1
Rafa 55 1.62 23 1
Maria 47 1.60 26 2
Aury 60 1.63 26 2
German 54 1.70 22 1
Celia 58 1.65 23 2
Carmen 75 1.78 26 2
Juan 65 1.70 24 1
Dani 82 1.77 28 1
29
Antonio 85 1.83 42 1
Belinda 75 1.74 25 2
Sara 65 1.65 26 2
#se añade una columna a la matriz datos, pero todos los datos quedan en caracte
res
> datos2=cbind(datos,origen)
> datos2
31