Aplicaciones usando vectores
scan()
para definir un vector.
Esta función permite ingresar los valores del vector ingresándolos de uno en uno o varios a la vez pero separados por un espacio.
Al digitar la función y presionar [Intro] se muestra "1:" en lugar de ">". Esto indica que debemos ingresar el primer elemento del vector.
Digitando el dato y presionando [Intro] cada vez podemos ingresar los datos. Al final, sólo presionamos [Intro].
Ejemplo
x = scan()
1:12
2:25
3:38 45 87 98
4:28
5:65 80 76
6:Sólo presionamos [Intro]
>x
Si desea ingresar más datos, puede usar uno de los siguientes criterios:
a) x = c(x, n1, n2, n3, ..., nk)
b) x = c(x, scan())
Veamos algunas operaciones con vectores
:
Ejemplo 1: Aritmética de vectores
Sea A y B los vectores de tamaño 5, sea C el vector suma. Ingresemos sus elementos
>A = c(4, 2, 8, 1, 5)
>B = c( 3, 8, 6, 4, 2)
>C = A+B
>C
>D = A-B
>D
La suma de los elementos de un vector:
>sum(A)
>sum(B)
Observe que no hemos guardado la suma en ninguna variable.
El producto; es decir, obtener: (12, 16, 48, 4, 10).
>p = A*B
>p
Observe esta otra operación: A%*%B,; es decir, el producto, pero encerrado entre "%":
>q = A%*%B
>q
Ahora, obtengamos la suma del vector producto (sum(A*B)):
>r = sum(A*B)
>r
q es una matriz de orden (1x1) mientras que r es un escalar.
¿Cómo obtenemos el número de elementos de un vector? Usando la función
length(..)
Cálculo del promedio de A:
>mA = suma(A)/length(A)
>mA
Media de B
>mB = sum(B)/length(B)
>mB
Claro que pudimos haber usado:
>mA = mean(A)
>mB=mean(B)
Cálculo de la varianza, desviación estándar y el coeficiente de variación de A y B
:
La siguiente imagen nos muestra la fórmula que nos permite calcular la varianza de una variable.
La primera fórmula nos permite calcular la varianza de una variable que, como puede ver hay dos formas de hacerlo.
Usando la segunda forma en donde el promedio para A lo tenemos en mA.
>vA = (sum(A*A)-length(A)*mA**2)/(length(A)-1)
>vA
Usando la primera forma:
>vA = sum((A-mA)**2)/(length(A)-1)
Claro que también pudimos haber usado la función
var(...)
:
>vA = var(A)
>vA
Cálculo de la desvicación estándar de una variable. La desviación estándar de una variable es la raíz cuadrada de ella:
>desvA = sqrt(vA)
>desvA
Cálculo del coeficiente de variación de A:
La segunda fórmula de la imagen anterior, nos permite calcular el Coeficiente de variación de una variable, que se expresa en términos porcenctuales y nos dice si la variables es homogénea o no.
>cvA = sqrt(vA)/mA
Ejercicio:
Cáacule el coeficiente de variación de B:
Ejemplo 2: Cálculo del promedio ponderado de notas de un alumno que lleva 6 asignaturas.
Las notas:
>notas = c(16,10,15,12,11,14)
Los créditos:
>creditos = c(3,4,3,4,4,4)
Como el promedio se obtiene sumando los productos de notas por el crédito y dividiendo entre la suma de los créditos, entonces:
>prPond = sum(notas*creditos)/sum(creditos)
>prPond
Ejemplo 3: Dado la cantidad(cant), precio unitario(pru) y descuento(desc), calculemos el Monto neto(Neto) de 100 compras.
Por la cantidad de datos, usaremos la función
sample(...)
para simularlos.
>cant = sample(0:10,100,rep=T)
>pru = sample(1275:8042,100, rep=T)/100
Nota: Este artificio nos genera valores con dos decimales.
Generemos el vector de descuentos en porcentaje.
>pdesc=sample(0:10,100,rep=T)/100
Ahora, un vector que indique si se aplicó o no el descuento en dicha compra.
>daplic = sample(0:1,100,rep=T)
Generamos los descuentos aplicados en cada compra:
< >desc = pdesc*daplic
>desc
Supondremos que el IGV = 0.18
>igv = 0.18
Ahora calculamos el monto neto:
>neto = cant*pru + cant*pru*igv - cant*pru*desc
>neto
El monto neto con dos decimales:
>neto = round(neto,2)
>neto
Observamos que existe monto neto igual a cero. ¿Tiene sentido? Claro que sí, ocurre cuando la canidad es 0.
Para verificar, hacemos lo siguiente:
Observando los resultados de
neto
, vemos que neto[90] = 0.00. Veamos el valor de
cant
:
>cant[90]
>cant[91]
Ejemplo 4: Aplicado a los ingresos y ahorros de 30 familias con ingreso único.
Sea X, la variable que contiene los ingresos mensuales de 30 empleados del sector Salud.
Sea Y, el número de hijos en edad escolar, de cada uno de estos 30 empleados.
Sea Z, gasto mensual por hijo en dichos empleados.
Deseamos conocer la capacidad de ahorro mensual (H) en estas familias, suponiendo que el ingreso familiar es único.
Según el problema, el ahorro menaual (H) lo obtendremos restando a X, el producto del número de hijos por el gasto mensual en cada hijo.
Ingresemos los datos. Para ello usaremos la función sample(...) para generar 30 elementos en cada caso.
Supongamos que los ingresos varían entre 3200 y 6800 soles y que el número de hijos en la etapa escolar varía entre 0 y 3.
También supondremos que el gasto por hijo varía entre 800 y mil soles y los gastos mensuales (G) por familia varía entre 1000 y 1250 soles.
> X=sample(3200:6800,30, rep=T)
>X
Para que los valores de X terminen en 0, haremos lo siguiente:
> X=sample(320:680,30, rep=T)*10
Generemos el vector Y:
> Y = sample(0:3,30, rep=T)
Ahora los gastos por cada hijo:
> Z = sample(800,1000,rep=T)
Finalmente, los gastos mensuales por familia:
> G = sample(1000:1250,30,rep=T)
Con estos datos pasamos a calcular el ahorro mensual familiar (H):
> H=X-G-Y*Z
>H
Nota
:
Recuerde que estos son datos simulados y aleatorio, por lo tanto, podemos obtener ahorro negativos.
Continuaremos con otros ejemplos y el uso de
tablas de frecuencia
del R.
Siguiente sesión