Sunteți pe pagina 1din 103

Gabriel Saltos Cruz.

Curso de lenguaje de programación r para no econometristas


Introducción
• R es un sistema para análisis estadísticos y gráficos
creado por Ross Ihaka y Robert Gentleman
• R tiene una naturaleza doble de programa y lenguaje
de programación
• R posee muchas funciones para análisis estadísticos y
gráficos; estos últimos pueden ser visualizados de
manera inmediata en su propia ventana y ser
guardados en varios formatos (jpg, png, bmp, ps, pdf,
emf, pictex, xfig; dependen del sistema operativo)
Introducción
• Al principio, R puede parecer demasiado complejo
para el no-especialista. Esto no es cierto
necesariamente. De hecho, una de las características
mas sobresalientes de R es su enorme flexibilidad
CONCEPTOS BÁSICOS
• El cursor, que por defecto es el símbolo ‘>’, indica que
R está listo para recibir un comando
• R es un lenguaje Orientado a Objetos: bajo este
complejo termino se esconde la simplicidad y
flexibilidad de R
•El hecho que R es un lenguaje de
programación puede desaminar a
muchos usuarios que piensan que no
tienen “alma de programadores”
Introducción
•¿Qué es un paquete?
•Un paquete es una serie de programas que
se distribuyen conjuntamente. En R
contamos con paquetes para resolver
problemas estadísticos tales como: Pruebas
de hipótesis, Regresión lineal, Regresión
lineal multivariada, Regresión logística,
Algoritmos de clasificación, Series de
tiempo, etc.
CONCEPTOS BÁSICOS
• Al iniciar sesión en R aparece el simbolo: “ > “ , esto
significa que la consola está lista para empezar a
escribir instrucciones.
• La asignación de variables se las hace directo, es decir,
que con el hecho de escribir:
• >a=3, la maquina agrega un espacio de memoria para
la variable “a”, se puede recuperar el valor solo
accionando >a y se imprime >3
• Dicho sea de paso, se asigna un tipo a la variable en
este caso es numérico, cuando escribimos la función:
>mode(a) la maquina nos responde numérico
“numeric”.
CONCEPTOS BÁSICOS
• Se presenta otro caso > b=“Pedro”, cuando escribimos
la función: >mode(a) la maquina nos responde
caracter “character”.
• Se pueden escribir variables con puntos por ejemplo
maestria.métodos.alumnos=“Fernanda”; se debe
tomar en cuenta que las variables no pueden iniciar
con numero ni tener caracteres especiales; incluso
una variable puede iniciar con punto (.) pero no es
recomendable por que se confundiría con las variables
del sistema.
• La c no se puede usar como variable por que es
comando
CONCEPTOS BÁSICOS
• Para determinar el tipo exacto de variable se debe
usar la variable >storage.mode(a) la respuesta de
la maquina es: “double” (coincide con lenguaje c).
Existen:
• "logical","integer","double", "complex", "raw",
"character","list", "expression", "name", "symbol"
CONCEPTOS BÁSICOS
• Para saber los objetos (variables) creados se puede
usar la función >ls() y se imprimirán todas las variables
asi: “a” “b” “maestria.metodos.alumnos”
• Si queremos borrar alguna variable escribimos la
función >rm(a) donde a es la variable, para borrar mas
las escribimos con coma(,) >rm(a, b) o todo
>rm(list=ls())
• Si uno quiere saber el historial de uso de objetos
usados se usa la función >history(), se despliega una
ventana aparte que muestra la historia requerida.
CONCEPTOS BÁSICOS
• Para obtener ayuda sobre el uso de una función o
comando se escribe >?(nombre del comando) por
ejemplo >?mode, a continuación se despliega una
ayuda con la descripción de la función
• Los operadores: *(por) /(dividido) +(mas) –(menos)
^(circunflejo) %/%(división entera ) %%(residuo)
#(comentario)
• Se puede se puede pedir ayuda de un operador, para
esto, si se escribe directo >?+ no se obtiene la
respuesta, puesto que la maquina esperara mas datos,
para pedir ayuda de un operador se lo pone entre
comillas >?”+”
CONCEPTOS BÁSICOS
• Se puede hacer operaciones aritméticas como
>58+6 y dar click en run, y la próxima línea de
comandos obtendremos el resultado >64 y asi
podemos introducir una resta >5-4 y la siguiente
línea de comandos dara >1 una división >9/3 y
su respuesta será la siguiente línea >3, etc.
(orden artmetica */+-)
CONCEPTOS BÁSICOS
• Si desean correr dos comandos en una línea se debe separar
por punto y coma (;) por ejemplo >a=3;b=5
• Si se quiere correr dos operaciones se debe escribir entre
llaves por ejemplo { (e) a+3 (e) b-7 (e) } (e) se imprimirá
como resultado >-2 por que siempre imprime la ultima línea
• Si se quiere imprimir todas las operaciones se tendrían que
escribir en el comando print ejemplo { (e) print(a+3) (e)
print( b-7) (e) } (e)
• Es importante aclarar que cuando al inicio de la línea no esta
el operador (>) y a su defecto esta el mas (+) quiere decir que
la operación no ha terminado y la maquina espera mas datos
(e) = enter
VECTORES
CONCEPTOS BÁSICOS
• Si se desea ingresar mas de un numero se usa el comando
“c”convine por ejemplo a=c(1.1,3,4.2,5.3) r siempre usa el
punto (.) como decimal y la coma(,) para separación.
• En el caso anterior a es un vector de 4 números si se
analiza el tipo de variable >mode(a) la respuesta va a ser
“numeric” y si se requiere saber la longitud del vector con
el comando >length(a) su resultado seria 4, por que el
vector tienen 4 números, o caracteres:
e=c(“pedro”,”pablo”,”juan”,”sandra”)
CONCEPTOS BÁSICOS
• Un vector puede estar creado por datos numérico,
caracteres o también una mezcla de los dos, en el primer
caso se llaman atómicos, es decir que todos tiene el
mismo tipo, para saber existe el comando is.atomic(b); si
fuera el caso y se ingresa diferentes tipos de caracteres el
lenguaje r lo transforma todo en chárter o carater y sigue
siendo atómico. >e
[1] “pedro” ”pablo” ”juan” ”Sandra”
• Si uno quiere mantener los modos naturales se usa lista()
LISTA
CONCEPTOS BÁSICOS
• Un lista es una opción de ingreso, se propone el siguiente
ejemplo: > l=list(“maria”, 6.6), se puede observar que al
ingresar > l se despliega [[1]] [1] “maria” [[2]] [1] 7.2
cuando se realiza la prueba de atomicidad dará falso asi:
>is.atomic(l) [1] FALSE\
• Para un caso mas complejo, se puede ingresar una lista de
varios vectores v=list(c(1,2,3),c(“a”, “c”, “d”),c(4,5,6))
cuando se imprimir >v se tiene lo siguiente: [[1]] [1] 1 2 3
[[2]] [1] “a” “c” “d” [[3]] [1] 4 5 6 asi encontramos lo
almacenado en el ordenador en la variable “v” el vector 1,
2 y 3 son atómicos pero la lista no
CONCEPTOS BÁSICOS
• Para acceder a los elementos de un vector se usan los
corchetes: por ejemplo realizamos el ingreso del vector >
vector=c(1,2,3) y se recupera con corchetes > vector [2] el
resultado será 2 es decir el segundo elemento:
• Para acceder a una lista se usa doble corchete: por
ejemplo realizamos el ingreso de la lista
>lista=list(c(3,2,1),c(“a”,”b”,”c”),c(6,5,4)) y se recupera con
doble corchete > lista [[2]] el resultado será el segundo
vector es decir el segundo elemento: “a” ”b” ”c”
CONCEPTOS BÁSICOS
• Si se quiere acceder a un elemento del vector de una lista
conbinamos los dos criterios por ejemplo > lista [[2]] [1]
extraerá el elemento 1 del vector 2 (“a” ”b” ”c”) >”a”
• Para acceder a 2 o mas elementos a la vez de un vector lo
ingresamos con el operador “c” de esta manera
>vector[c(1,3)] y se extrae el elemento 1 y el elemento 3
• Se puede hacer el complemento de un vector, dicho de
otro modo, se puede extraer todos los elementos menos
el que le señalamos con negativo, de esta forma >vector[-
2] en este caso imprime todo menos el segundo elemento
CONCEPTOS BÁSICOS
• Si se quiere acceder a un elemento vía condiciones lógicas
se puede ubicarlas dentro del corchete de la siguiente
manera: >vector[vector>3], se imprimirá todos los
elementos que sean mayores del entero 3
• Para agregar nombres a los vectores, primero debemos
tener un vector de nombres y un vector de el elemento
que queremos agregar la propiedad en estudio (nombre),
por ejemplo creamos la variable tipo vector chárter
atómica > nombres=c("Carlos","Pedro","Mario","Guillo") y
el vector tipo doublé > notas=c(7.8,8.4,6.5,6)
• > names(notas)=nombres e imprimimos la variable notas
• Se puede consultar los nombres de los que han puntuado
mas de 7 mediante > notas[notas>7]
OPERACIONES – VECTORES
CONCEPTOS BÁSICOS
• Para sumar los elementos de un vector se usa >sum
(notas) > sum(notas) el resultado [1] 28.7
• Para la suma acumulada > cumsum(notas)
Carlos Pedro Mario Guillo
7.8 16.2 22.7 28.7
• Para multiplicar > prod(notas) [1] 2555.28
• Para multiplicación acumulada > cumprod (notas)
• Carlos Pedro Mario Guillo
• 7.80 65.52 425.88 2555.28
ESTADISTICOS – VECTORES
CONCEPTOS BÁSICOS
• Para calcular el promedio o media > mean(notas) [1]
7.175
• Para el calculo de la varianza > var (notas) [1] 1.2425
• Para el calculo de la desviación estándar > sd(notas)
[1] 1.114675
• Para calcular la raíz cuadrada de la varianza >
sqrt(var(notas)) [1] 1.114675
• Para calcular la mediana > median(notas) [1] 7.15
• Para calcular el máximo y el minimo > max(notas) [1]
8.4 > min(notas) [1] 6
CONCEPTOS BÁSICOS
• Para cargar un vector con números secuenciales por ejemplo >
vector2=c(1,2,3,4,5) > vector2 [1] 1 2 3 4 5, también se puede
poner > vector2=1:5
• Para multiplicar vectores se debe crear una variable y asignar el
producto: > notas
• Carlos Pedro Mario Guillo
• 7.8 8.4 6.5 6.0
• >factor
• [1] 2 3 5 2
• > y=notas*factor
•>y
• Carlos Pedro Mario Guillo
• 15.6 25.2 32.5 12.0
CONCEPTOS BÁSICOS
• Además, se pueden hacer cualquier tipo de
operaciones con vectores por ejemplo cargamos
• > a=c(1,2,3,4)
• > b=c(4,5,6,7)
• > y=a*b
•> y
• [1] 4 10 18 28
CONCEPTOS BÁSICOS
• Además se puede hacer operaciones mas complejas
con vectores por ejemplo
• > y=a*b+10
•> y
• [1] 14 20 28 38
• > y=a*b+10+c(10,20)
•> y
• [1] 24 40 38 58
EMULANDO LA VARIANZA

PIZARRÓN-
USE SU
LÓGICA
CONCEPTOS BÁSICOS
• Estimado maestrante debe usar su lógica pura para poder
doblar columnas a filas y poder cambiar la cosmovisión de
calculo
• Visión integral y sistémica

• > a-mean(a)
• [1] -1.5 -0.5 0.5 1.5

• > (a-mean(a))^2
• [1] 2.25 0.25 0.25 2.25
CONCEPTOS BÁSICOS

• > sum((a-mean(a))^2)
• [1] 5

• > length(a)
• [1] 4
• > sum((a-mean(a))^2)/(length(a)-1)
• [1] 1.666667
• > var(a)
• [1] 1.666667
TALLER 1
REALIZAR LAS SIGUIENTES EMULACIONES
• MEDIA
• RANGO
• DESVIACIÓN ESTÁNDAR
• DESVIACIÓN MEDIA
EMULANDO LA MEDIA
EMULANDO EL RANGO
EMULANDO LA DESVIACIÓN
ESTÁNDAR
EMULANDO LA DESVIACIÓN
MEDIA
ORDINAL – VECTORES
CONCEPTOS BÁSICOS
Para ordenar un vector en cuanto a sus valores se
pueden usar diferentes funciones, primero se carga un
vector,
> a=c(12.3,18,13,12.4,15)
> names(a)=c("Carlos","Pepe","Jose")
>a
Carlos Pepe Jose <NA> <NA>
12.3 18.0 13.0 12.4 15.0 :
CONCEPTOS BÁSICOS
Para ordenar un vector en forma ascendente se usa
> sort(a) #función ascendente por default
Carlos Felipe Jose Mario Pepe
12.3 12.4 13.0 15.0 18.0
> sort(a,decreasing=FALSE) #función ascendente
Carlos Felipe Jose Mario Pepe
12.3 12.4 13.0 15.0 18.0
> sort(a,decreasing=TRUE) #función descendente
Pepe Mario Jose Felipe Carlos
18.0 15.0 13.0 12.4 12.3
CONCEPTOS BÁSICOS
Para ordenar un vector en referencia a otro
Usamos el comando
> order (a) # que devuelve el orden de un vector puesto
de menor a mayor ejemplo [1] 1 4 3 5 2 # se puede cargar
el orden en una variable de tipo vector
> orden=order(a) # se imprime la segunda variable
b[orden] o simplemente nombramos la función
b[order(a)], se puede cambiar el sentido del orden:
> order(a,decreasing=TRUE)
[1] 2 5 3 4 1
DATA FRAME - TABLAS DE DATOS
CONCEPTOS BÁSICOS
Para crear una tabla se ingresa
> datos=data.frame(estatura=c(167,156,178,145), #ingreso
+ peso=c(178,156,167,167), #variable
+ row.names=c("Carlos","Tatiana","Igor","Pedro")) #nombres
> datos
estatura peso
Carlos 167 178
Tatiana 156 156
Igor 178 167
Pedro 145 167
CONCEPTOS BÁSICOS
Como se aprecia existen datos de estatura y peso, pero se
debe tener cuidado por que esas variables no existen,
sino que, están dentro de la variable datos y se accede asi
> datos$peso
[1] 178 156 167 167
> datos$estatura
[1] 167 156 178 145
OPERACIONES CON - DATA FRAME
CONCEPTOS BÁSICOS
Antes que nada se debe aclarar que existen
procedimientos que tienen compatibilidad con tablas y
otros no.
• La suma devuelve la sumatoria total de todas sus filas y
columnas
> sum(datos)
[1] 1314
CONCEPTOS BÁSICOS
Una función que devuleve un resumen estadístico de una tabla es
> summary(datos)
estatura peso
Min. :145.0 Min. :156.0
1st Qu.:153.2 1st Qu.:164.2
Median :161.5 Median :167.0
Mean :161.5 Mean :167.0
3rd Qu.:169.8 3rd Qu.:169.8
Max. :178.0 Max. :178.0
Entrega el máximo y mínimo, primero y tercer cuartil, la media, la
mediana (OJO si no existe algún dato se puede escribir NA)
CONCEPTOS BÁSICOS
Se supone que uno de los datos es desconocido
>datos=data.frame(estatura=c(167,156,178,145),peso=c(178,1
56,NA,167), row.names=c("Carlos","Tatiana","Igor","Pedro"))
> datos
estatura peso
Carlos 167 178
Tatiana 156 156
Igor 178 NA
Pedro 145 167
El NA no es tomado en cuenta, si encontramos el dato, para el
ingreso
CONCEPTOS BÁSICOS
Se supone que uno de los datos es desconocido
datos$peso[3] = 120
> datos
estatura peso
Carlos 167 178
Tatiana 156 156
Igor 178 120
Pedro 145 167
CONCEPTOS BÁSICOS
Para calcular la media de los datos se usa la función desde
la subvariable
> mean(datos$estatura)
[1] 161.5
> mean(datos$peso)
[1] 155.25
CONCEPTOS BÁSICOS
Para calcular la varianza de los datos se usa directamente
la función
> var(datos)
estatura peso
estatura 201.6667 -218.1667
peso -218.1667 632.9167
> var de peso = 632.9167; var de estatura = 201.6667;
covar = -218.1667
CONCEPTOS BÁSICOS
Otro estadístico importante para este fin es la correlación
> cor(datos)
estatura peso
estatura 1.000000 -0.610658
peso -0.610658 1.000000
Su resultado indica que si el numero se aproxima a cero
no existe correlación lineal entre las variables
Existen funciones que son compatibles con las matrices,
en su defecto las que no son, deben usar la función apply
CONCEPTOS BÁSICOS
Para usar la función apply se debe presentar el sig flujo
> apply(datos,2,mean)
estatura peso
161.50 155.25
> apply(datos,2,min)
estatura peso
145 120
apply se usa para matrices, en el caso de listas se usa el sapply; >
sapply(datos,min)
estatura peso
145 120
VARIABLES CATEGORICAS
CONCEPTOS BÁSICOS
Para declarar variables categóricas (se las llaman factores),
ejemplo: existen ingresos de un ítem de diferentes colores,
cuando se ingresan existe la probabilidad de errores, como
ingresar verde,Verde, Berde, VERDE, y otros se evita
categorizando el ingreso.
>x=factor(c(1,2,3,4,3,4,3,2,2),labels=c("azul","verde","rojo","naranja"))
>x
[1] azul verde rojo naranja rojo naranja rojo verde verde
Levels: azul verde rojo naranja
CONCEPTOS BÁSICOS
A un factor se puede aplicar ciertas funciones entre ellas
> summary(x) #devuelve las frecuencias
azul verde rojo naranja
1 3 3 2
> table(x) #por default equivale a la función anterior (tabla de
frecuencias) x
azul verde rojo naranja
1 3 3 2
AGREGAR FACTORES A DATA
FRAME
CONCEPTOS BÁSICOS
Para agregar una variable categorica a un data .frame o matriz se
lo realiza directamente con el símbolo ($)
> datos$canton=factor(c(1,2,2,1), labels=c("Ambato","Baños"))
> datos
estatura peso cantón
Carlos 167 178 Ambato
Tatiana 156 156 Baños
Igor 178 120 Baños
Pedro 145 167 Ambato
CONCEPTOS BÁSICOS
Para agregar una fila a un data frame se lo agrega como lista para
mantener la integridad. Para la demostración se asume una
entrada a la matriz ya ingresada
> datos["Gabo",]=list(180,200,"Baños")
> datos
estatura peso canton
Carlos 167 178 Ambato
tatiana 156 156 Baños
Igor 178 167 Baños
Pedro 145 167 Ambato
Gabo 180 200 Baños
CONCEPTOS BÁSICOS
En ocasiones, por errores de ingreso suelen dañarse los tipos de
datos de una matriz (data.frame), en este caso se puede asignar
tipos directamente. Para la demostración se asume una entrada
a la matriz ya ingresada > datos[5,]=c(185,220,"Ambato")
> datos
estatura peso canton
Carlos 167 178 Ambato
Tatiana 156 156 Baños
Igor 178 167 Baños
Pedro 145 167 Ambato
5 185 220 Ambato
CONCEPTOS BÁSICOS
Para ingresar la etiqueta de la fila 5
> row.names(datos)[5]="Gabo“
> datos
estatura peso canton
Carlos 167 178 Ambato
Tatiana 156 156 Baños
Igor 178 167 Baños
Pedro 145 167 Ambato
Gabo 185 220 Ambato
#en este caso se ingresa como vector y todos se convierten en
chart
CONCEPTOS BÁSICOS
Para ver el tipo de datos de cada vector de una matriz
> str(datos)
'data.frame': 5 obs. of 3 variables:
$ estatura: chr "167" "156" "178" "145" ...
$ peso : chr "178" "156" "167" "167" ...
$ canton : Factor w/ 2 levels "Ambato","Baños": 1 2 2 1 1
CONCEPTOS BÁSICOS
Para cambiar el tipo de datos de cada vector de una matriz
> mode(datos$estatura)="numeric"
> mode(datos$peso)="numeric"
> str(datos)
'data.frame': 5 obs. of 3 variables:
$ estatura: num 167 156 178 145 185
$ peso : num 178 156 167 167 220
$ canton : Factor w/ 2 levels "Ambato","Baños": 1 2 2 1 1
VARIABLES CATEGÓRICAS-
GRAFICAS
CONCEPTOS BÁSICOS
Cuando el factor esta cargado se grafica con el comando plot
> plot(x) #en este caso devolvió un grafico de barras,
CONCEPTOS BÁSICOS
Otro ejemplo del comando plot es el ingreso de
> plot(datos$peso) o de > plot(datos)
CONCEPTOS BÁSICOS
Para relacionar la estatura versus el cantón se graficara en
diagramas de caja > plot(peso~estatura,data=datos)
CONCEPTOS BÁSICOS
Para relacionar la estatura versus el cantón se graficara en
diagramas de caja > plot(peso~canton,data=datos)
CONCEPTOS BÁSICOS
Si solo se quisiera graficar un diagrama de caja se tendría la sig
opción > boxplot(datos$peso)
CONCEPTOS BÁSICOS
Se pueden graficar curvas con la función curve
curve(x^2,from=-3,to=3)
CONCEPTOS BÁSICOS
Se pueden graficar funciones trigonometrías
> curve(sin,from=-3*pi,to=3*pi)
CONCEPTOS BÁSICOS
Se pueden graficar funciones trigonometrías
curve(tan,from=-2*pi,to=2*pi)
CONCEPTOS BÁSICOS
Se pueden graficar funciones en general
curve(x^2-sqrt(x)+x-3,from=0*pi,to=3*pi) #ojo que sqrt no adm 0
SECUENCIA - ORDENAMIENTO
CONCEPTOS BÁSICOS
Esta claro que se puede crear un vector secuencial
ascendente y descendente
> 1:5
[1] 1 2 3 4 5
> 5:1
[1] 5 4 3 2 1
Existe una forma controlada de hacerlo, a partir de seq
> seq(2,4,by=0.5)
[1] 2.0 2.5 3.0 3.5 4.0
CONCEPTOS BÁSICOS
Existe otra forma de hacerlo, a partir de el remplazo de by
por length, es decir controlando el numero de elementos
del vector > seq(1,5,length=10)
[1] 1.000000 1.444444 1.888889 2.333333 2.777778
3.222222 3.666667 4.111111 4.555556 5.000000
> seq(1,5,length=20)
[1] 1.000000 1.210526 1.421053 1.631579 1.842105
2.052632 2.263158 2.473684 2.684211 2.894737
3.105263 3.315789 3.526316 3.736842 3.947368
4.157895 4.368421 4.578947 4.789474 5.000000
CONCEPTOS BÁSICOS
CURVE VS PLOT Con plot se debe cargar la secuencia
x=seq(0,3,length=100)
[1] 0.00000000 0.03030303 0.06060606 0.09090909 0.12121212 0.15151515
[7] 0.18181818 0.21212121 0.24242424 0.27272727 0.30303030 0.33333333
[13] 0.36363636 0.39393939 0.42424242 0.45454545 0.48484848 0.51515152
[19] 0.54545455 0.57575758 0.60606061 0.63636364 0.66666667 0.69696970
[25] 0.72727273 0.75757576 0.78787879 0.81818182 0.84848485 0.87878788
[31] 0.90909091 0.93939394 0.96969697 1.00000000 1.03030303 1.06060606
[37] 1.09090909 1.12121212 1.15151515 1.18181818 1.21212121 1.24242424
[43] 1.27272727 1.30303030 1.33333333 1.36363636 1.39393939 1.42424242
[49] 1.45454545 1.48484848 1.51515152 1.54545455 1.57575758 1.60606061
[55] 1.63636364 1.66666667 1.69696970 1.72727273 1.75757576 1.78787879
[61] 1.81818182 1.84848485 1.87878788 1.90909091 1.93939394 1.96969697
[67] 2.00000000 2.03030303 2.06060606 2.09090909 2.12121212 2.15151515
[73] 2.18181818 2.21212121 2.24242424 2.27272727 2.30303030 2.33333333
[79] 2.36363636 2.39393939 2.42424242 2.45454545 2.48484848 2.51515152
[85] 2.54545455 2.57575758 2.60606061 2.63636364 2.66666667 2.69696970
[91] 2.72727273 2.75757576 2.78787879 2.81818182 2.84848485 2.87878788
[97] 2.90909091 2.93939394 2.96969697 3.00000000
CONCEPTOS BÁSICOS
CURVE VS PLOT Resolver la formula
y=x^2-sqrt(x)+x-3
[1] -3.00000000 -3.14285635 -3.18190383 -3.20233779 -3.21225081 -3.21477748
[7] -3.21152540 -3.20344957 -3.19117221 -3.17512553 -3.15562421 -3.13290582
[13] -3.10715492 -3.07851827 -3.04711489 -3.01304284 -2.97638409 -2.93720796
[19] -2.89557374 -2.85153255 -2.80512888 -2.75640172 -2.70538547 -2.65211065
[25] -2.59660452 -2.53889149 -2.47899359 -2.41693073 -2.35272099 -2.28638085
[31] -2.21792540 -2.14736846 -2.07472275 -2.00000000 -1.92321107 -1.84436602
[37] -1.76347420 -1.68054430 -1.59558444 -1.50860222 -1.41960472 -1.32859862
[43] -1.23559017 -1.14058525 -1.04358943 -0.94460792 -0.84364568 -0.74070738
[49] -0.63579744 -0.52892008 -0.42007928 -0.30927882 -0.19652232 -0.08181319
[55] 0.03484529 0.15345000 0.27399795 0.39648632 0.52091237 0.64727350
[61] 0.77556722 0.90579113 1.03794294 1.17202045 1.30802154 1.44594419
[67] 1.58578644 1.72754640 1.87122227 2.01681231 2.16431482 2.31372820
[73] 2.46505087 2.61828132 2.77341811 2.93045981 3.08940506 3.25025255
[79] 3.41300099 3.57764917 3.74419587 3.91263994 4.08298026 4.25521574
[85] 4.42934532 4.60536798 4.78328272 4.96308858 5.14478462 5.32836992
[91] 5.51384361 5.70120482 5.89045270 6.08158646 6.27460529 6.46950842
[97] 6.66629510 6.86496459 7.06551619 7.26794919
CONCEPTOS BÁSICOS
CURVE VS PLOT plotear y~x
> plot(y~x)
CONCEPTOS BÁSICOS
CURVE VS PLOT finalmente plotear x~y con línea
> plot(y~x) # curve lo hace en un solo comando
TEXTO EN GRÁFICOS
CONCEPTOS BÁSICOS
Para ingresar texto en un grafico se usa la expresión text, como
primer punto graficamos > plot(y~x,type="l") después el texto
> text(1,2,"hola mundo")
CONCEPTOS BÁSICOS
Para ingresar una expresion en un grafico se usa la expresión
text, como primer punto graficamos > plot(y~x,type="l") después
el texto > text(1,2,expression(y=x^2-sqrt(x)+x-3)) o se pone
doble igual para que tenga el “Y=“, en el caso de letras griegas se
escriben en la expresión, > text(1,4,expression(y==x^2-
sqrt(x)+beta-3))
CONCEPTOS BÁSICOS
Para ingresar una expresión compleja en un grafico
> curve(plogis,from=-4,to=4)
> text(-3,0.8,expression(frac(e^x,1+e^x)))
> text(2,0.2,expression(s^2==frac(sum((x[i]-bar(x))^2,i==1,n),n-1)))
CONCEPTOS BÁSICOS
Para gravar el historial existen dos formas básicas: la primera es
seleccionar el texto y copiarlo a un editor de texto la segunda es
mediante el sistema para esto se usa las funciones getwd y setwd
> getwd() # devuleve la ruta que r usa para grabar el historial
[1] "C:/Users/Mg. Gabriel Saltos C/Documents“ #ruta
> setwd("D:/DOCENCIA/UTA/MAESTRIA 2017/CURSOBETA/CURSO R/arch R")
Esta ruta se puede extraer del explorados, cuidando en poner
entre comillas y cambiar el slash por back-slash
FACTOR NOMINAL Y ORDINAL
CONCEPTOS BÁSICOS
Cuando creamos un factor este se graba como categoría o
numero asignado, esta categoría no tiene orden
>x=factor(c(1,2,1,1,1,2,2,1,1,1,1,1,2,3,3,3,3),labels=c("a","b","c"))
>x
[1] a b a a a b b a a a a a b c c c c
Levels: a b c
CONCEPTOS BÁSICOS
Cuando asignamos orden en cambio
> y=ordered(c(1,2,1,1,1,2,2,1,1,1,1,1,2,3,3,3,3),labels=c("de
acuerdo","neutral","en desacuerdo"))
>y
[1] de acuerdo neutral de acuerdo de acuerdo de
acuerdo
[6] neutral neutral de acuerdo de acuerdo de acuerdo
[11] de acuerdo de acuerdo neutral en desacuerdo en
desacuerdo
[16] en desacuerdo en desacuerdo
Levels: de acuerdo < neutral < en desacuerdo
MATRICES Y ARREGLOS
CONCEPTOS BÁSICOS
Para crear una matriz se usa el comando matrix
> a=matrix(1:9,ncol=3)
>a
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Una matriz no es igual que un data.frame, puesto que en la
matriz se graba un solo tipo de dato, a diferencia de la tabla; es n
vector con atributos especiales.
CONCEPTOS BÁSICOS
Para acceder a los elementos de una matriz
> a[2,] # acede a la segunda fila
[1] 2 5 8
> a[,3] # acede al a tercera fila
[1] 7 8 9
> a[2,2] #acede al elemento de la segunda fila, segunda columna
[1] 5
> a[-1,] #acede a todas las columnas menos la primera
[,1] [,2] [,3]
[1,] 2 5 8
[2,] 3 6 9
CONCEPTOS BÁSICOS
Para operar con matrices es necesario saber los comandos
> b=matrix(c(1,2,3,2,3,1,3,1,2),ncol=3) >b
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 2 3 1
[3,] 3 1 2
> y= solve(b) #devuelve la inversa de la matriz >y
[,1] [,2] [,3]
[1,] -0.27777778 0.05555556 0.38888889
[2,] 0.05555556 0.38888889 -0.27777778
[3,] 0.38888889 -0.27777778 0.05555556
CONCEPTOS BÁSICOS
Para multiplicar matrices se usa el comando b%*%y por que a*b
es una multiplicación vectorial simple es decir b[1,1]*y[1,1]; > b*y
[,1] [,2] [,3] #multiplicación vectorial
[1,] -0.2777778 0.1111111 1.1666667
[2,] 0.1111111 1.1666667 -0.2777778
[3,] 1.1666667 -0.2777778 0.1111111
> b%*%y
[,1] [,2] [,3] #multiplicación matricial (matriz identidad)
[1,] 1 0 5.551115e-17
[2,] 0 1 7.632783e-17
[3,] 0 0 1.000000e+00
CONCEPTOS BÁSICOS
Para operar en una matriz también se puede usar la función apply
> apply(b,1,mean) #para sacar la media
[1] 2 2 2
> str(b) #devuelve la estrutura de la matriz
num [1:3, 1:3] 1 2 3 2 3 1 3 1 2 #se comprometa que la matriz es
un vector almacenado por columnas
> attributes(b) #devuelve el atributo, es decir el dimm
$dim
[1] 3 3
CONCEPTOS BÁSICOS
Para crear un arreglo se usa la función array
> x=array(1:24,c(2,3,4))
,,1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
,,2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
,,3
[,1] [,2] [,3]
[1,] 13 15 17
[2,] 14 16 18
,,4
[,1] [,2] [,3]
[1,] 19 21 23
[2,] 20 22 24
CONCEPTOS BÁSICOS
Para emular un array de frecuencias creamos 3 factores de la
misma medida y consultamos con la función table las frecuencias.
>genero=factor(c(1,1,1,1,1,1,2,2,2,2,2,2),label=c("masculino","femenino"))
>region=factor(c(1,1,3,2,2,3,3,2,1,1,2,3),label=c("costa","sierra","oriente"))
> opinion=factor(c(1,2,1,1,1,2,2,2,1,2,1,1),labels=c("si","no"))
> table(genero) devuelve un array de 1x2
genero
masculino femenino
6 6
CONCEPTOS BÁSICOS
> table(genero,region)
region
genero costa sierra oriente #devuelve un array de 3x2
masculino 2 2 2
femenino 2 2 2
> , , opinion = si # devuelve un array de 3x2x2
region
genero costa sierra oriente
masculino 1 2 1
femenino 1 1 1
, , opinion = no
region
genero costa sierra oriente
masculino 1 0 1
femenino 1 1 1
IMPORTAR Y EXPORTAR R CON
EXCELL
CONCEPTOS BÁSICOS
El primer punto antes de de nada es preparar el archivo,
armamos la tabla en excell siguiendo los siguientes
criterios
• El nombre de la tabla no puede tener espacios, ni iniciar
con números, ni contener tildes
• El nombre de una tabla de preferencia puede tener
puntos separadores o guiones bajos
• A partir del excell se debe crear un txt en guardar como
CONCEPTOS BÁSICOS
Antes de abrir el archivo txt con la base de datos se debe
localizar la ruta con la que esta grabando el r por default
> getwd() # averigua el directorio o carpeta actual
[1] "C:/Users/Mg. Gabriel Saltos C/Documents"
Si se quiere cambiar el directorio se usa setwd (“ruta
nueva”) o a su falta el menu archivo cmbiar dir
CONCEPTOS BÁSICOS
> datos=read.delim("HOJA DATOS R.txt")
> datos
nombre Presion.diastolica Presion.sistolica Colesterol Trigliceridos
1 Gabriel S 120 80 189 178
2 Pedro R 110 70 148 110
3 Fernando T 135 82 210 347
4 Paul L 117 74 172 168
5 jane Dou 145 109 180 190
Ojos
1 café
2 verde
3 verde
4 café
5 celeste
CONCEPTOS BÁSICOS
CRITERIOS LÓGICOS
También podemos hacer el resultado en este caso
operaciones lógicas con no es un número, sino un
los operadores de: valor lógico TRUE o
• > mayor que FALSE.
• < menor que • > 9>10
• == igualdad • [1] FALSE
• != diferentes • > 6!=9
• <= menor o igual que • [1] TRUE
• >= mayor o igual que
CONCEPTOS BÁSICOS
• Objetos en R
• R trabaja con objetos, los cuales tienen nombre y contenido, pero
también atributos. Todo objeto tiene dos atributos intrínsecos: tipo y
longitud.
• El tipo se refiere a la clase básica de los elementos en el objeto.
• Existen cuatro tipos principales: numérico, carácter, complejo y lógico
• Existen otro tipos, pero no representan datos como tal, por ejemplo, las
funciones o las expresiones.
• Para ver el tipo y la longitud de un objeto se pueden usar las funciones
class() y lenght(), respectivamente.
• La longitud de un objeto puede ser uno o más grande.
• por ejemplo podemos asignar al objeto "x" el valor 5 con el comando
x=5 o los valores 3,2,6,8 de la siguiente manera x=c(3, 2, 6, 8)
CONCEPTOS BÁSICOS
• LIBRERÍAS EN R
• Hay dos maneras de instalar nuevas librerías en R.
• La primera es con:install.packages (“librería”), donde librería
es el paquete que deseamos instalar.
• La segunda es descargarlo en formato zip : Primero tienes
que bajarte el ZIP que contiene el paquete desde la página
de R allí seleccionas la opción CRAN y en la ventana que se
abre eliges el país de tu preferencia y en las opciones de la
izquierda eliges “Packages”. Inmediatamente se abrirá una
página con todos los paquetes disponibles, seleccionas el de
tu preferencia y luego lo bajas según tu sistema operativo.
CONCEPTOS BÁSICOS
• Ayuda en R
• Hay diversas formas de ayuda: podemos entrar a la liga:
http://cran.r-project.org/faqs.html. Rtips de Paul Johnson:
http://pj.freefaculty.org/R/Rtips.html. La ayuda dentro del
programa: ? help
• la manera de usarlos es el signo "?" se usa para funciones o
palabras reservadas (no de comandos de programación) y
help para cualquier palabra; por ejemplo
• ?mean
• help.search("normal")

S-ar putea să vă placă și