Antes de comenzar es importante conocer lo siguiente:

Primeras funciones importantes de R:

ls() sin argumentos, da el vector de nombres de variables definidas.
a:b crea vector de enteros consecutivos, de a a b.
c(…) da un vector con los argumentos … concatenados.
length(x) da la longitud del vector argumento x.
sum(…) SUMa las componentes de los argumentos.
prod(…) PRODucto de las componentes de los argumentos.
sort(x) da el vector argumento x reordenado de manera creciente.
sort(x,decreasing=TRUE) lo mismo (pero decreciente).
min(…) da el valor MÍNimo de los argumentos.
max(…) da el valor MÁXimo de los argumentos.
which(x) da el vector de “posiciones” donde x es TRUE. El argumento suele ser una comparación.

Las siguientes funciones/operadores actúan componente por componente, devolviendo otro vector de igual tamaño:

+, -, *, /, ^,… operaciones matemáticas
sqrt(), log(), exp(), sin(), abs(), … otras funciones matemáticas
<, ==, >, <=, >=, != operadores de comparación
&, |, xor(), ! operadores lógicos (and, or, or exclusivo, not)

A continuación presentamos ejercicios en donde hemos utilizamos vectores y algunas funciones presentadas anteriormente:

EJERCICIO 1:

Calcula los valores numéricos aproximados de:
En los literales a, b y c aplicaremos operaciones matemáticas básicas:
a)

\[\frac{0.3*0.15}{(0.3*0.15)+(0.2*0.8)+(0.5*0.12)}\]

a<-0.3*0.15
a
## [1] 0.045
b<-0.3*0.15+0.2*0.8+0.5*0.15
b
## [1] 0.28
c<-a/b
c
## [1] 0.1607143
b)

\[\frac{5^6}{6!}*e^{-5}\]

f<-((5**6)/(factorial(6)))*exp(-5)
f
## [1] 0.1462228
c)

\[\left(\begin{array}{c} {20}\\ {7} \end{array}\right)0.4^7*0.6^{13}\]

El siguiente ejercicio es una operación de la forma:

\[\left(\begin{array}{c} {n}\\ {k} \end{array}\right) = \frac {n!}{k!(n-k)!}\]

Para ellos utilizamos el siguiente código:
j<-combn(20,7,FUN = NULL,simplify = FALSE)
j<-length(j)
j<- j*(0.4**7)*(0.6**13)
j
## [1] 0.1658823

EJERCICIO 2:

Realiza las siguientes sumas:
1. 1+2+3+⋯+1000 1+2+3+⋯+1000
Sol.: 500500 500500
Para el siguiente ejercicio aplicaremos una suma de 1 a 1000:
a<- rep(1:1000)
a<-sum(a)
a<-(rep(a,time=2))
cat("El resultado es", a)
## El resultado es 500500 500500
2. 1+2+4+8+16+⋯+1024 1+2+4+8+16+⋯+1024
Sol.: 2047 2047
Para el siguiente ejercicio se aplicará una condición para que la suma vaya de dos por dos desde el número 1 al 1024:
s<-rep(0:10)
s<-c(2^s)
s<-sum(s)
s<-rep(s,time=2)
s
## [1] 2047 2047

EJERCICIO 3:

El vector alumnos representa los nombres de una serie de alumnos.
Crear el vector alumnos con 20 nombres
1. Visualízalo en pantalla
2. ¿Cuántas componentes tiene el vector alumnos?
3. ¿En qué posiciones del vector alumnos está la letra ‘A’?

La visualización de vectores nos ayudará a verificar los literales que nos piden:
#1.
nombres<-c( "Juan","Camila","Jerson","Miguel"," Alan","Stiven","Kimi","Daniela","Anita","Katia","Pricila","Melany",
       "Karol","Yuli","Maria","Francisco","Jhony","Karen","David","Antonela")
nombres
##  [1] "Juan"      "Camila"    "Jerson"    "Miguel"    " Alan"     "Stiven"   
##  [7] "Kimi"      "Daniela"   "Anita"     "Katia"     "Pricila"   "Melany"   
## [13] "Karol"     "Yuli"      "Maria"     "Francisco" "Jhony"     "Karen"    
## [19] "David"     "Antonela"
#2.
length(nombres)
## [1] 20
#3.
posicion<-which(grepl("A", nombres))
posicion
## [1]  5  9 20

EJERCICIO 4:

El vector notas representa la nota de un examen, de los mismos alumnos cuyo lista se ha guardado en el vector alumnos y en el mismo orden.

Crear el vector notas
Cabe recalcar que las notas irán en un rando de 0 a 10:
1. Visualízalo en pantalla
notas<-c(sample(1:10, 20,replace = T))
notas
##  [1]  7  4 10  8  1  2  6  8  9  2  4  9  2 10  2  5  5  8  7  7
2. ¿Cuántos componentes tiene?
length(notas)
## [1] 20
3. ¿Cuánto suman todas las notas?
sum(notas)
## [1] 116
4. ¿Cuál es la media aritmética de todas las notas?
mean(notas)
## [1] 5.8
5. ¿En qué posiciones están las notas mayores de 7?
which(notas>7)
## [1]  3  4  8  9 12 14 18
6. Visualiza las notas ordenadas de menor a mayor
sort(notas)
##  [1]  1  2  2  2  2  4  4  5  5  6  7  7  7  8  8  8  9  9 10 10
7. Visualiza las notas ordenadas de mayor a menor
sort(notas,decreasing = T)
##  [1] 10 10  9  9  8  8  8  7  7  7  6  5  5  4  4  2  2  2  2  1
8. ¿Cuál ha sido la nota máxima?
max(notas)
## [1] 10
9. ¿En qué posición del vector está esa nota máxima?
which.max(notas)
## [1] 3

EJERCICIO 5:

A partir de los vectores alumnos y notas definidos:

1. Visualiza las notas de los 10 primeros alumnos
head(notas,10)
##  [1]  7  4 10  8  1  2  6  8  9  2
2. Suma las notas de los 10 primeros alumnos del vector
sum(head(notas,10))
## [1] 57
3. ¿Cuántos alumnos hay en total?
cat("Total de alumnos selecionado los 10 primeros",length(head(nombres,10)))
## Total de alumnos selecionado los 10 primeros 10
cat("Total de alumnos en general ",length(nombres))
## Total de alumnos en general  20
4. Suma las notas de los alumnos
sum(notas)
## [1] 116
5. ¿Cuántos alumnos han aprobado?
cat("Alumnos aprobados",length(which(notas>6)))
## Alumnos aprobados 10
6. ¿Qué porcentaje de alumnos han aprobado?
j<-(length(which(notas>6))/length(notas))*100
cat("El Porcentaje de alumnos aprobados es ",j,"%")
## El Porcentaje de alumnos aprobados es  50 %
7. ¿Cuáles han sido las notas máxima y mínima?
x<-data.frame(Estudiantes=nombres,NOTAS=notas)
x
##    Estudiantes NOTAS
## 1         Juan     7
## 2       Camila     4
## 3       Jerson    10
## 4       Miguel     8
## 5         Alan     1
## 6       Stiven     2
## 7         Kimi     6
## 8      Daniela     8
## 9        Anita     9
## 10       Katia     2
## 11     Pricila     4
## 12      Melany     9
## 13       Karol     2
## 14        Yuli    10
## 15       Maria     2
## 16   Francisco     5
## 17       Jhony     5
## 18       Karen     8
## 19       David     7
## 20    Antonela     7
summary(x)
##  Estudiantes            NOTAS     
##  Length:20          Min.   : 1.0  
##  Class :character   1st Qu.: 3.5  
##  Mode  :character   Median : 6.5  
##                     Mean   : 5.8  
##                     3rd Qu.: 8.0  
##                     Max.   :10.0
notaalta<-subset(x,notas>6)
notaalta
##    Estudiantes NOTAS
## 1         Juan     7
## 3       Jerson    10
## 4       Miguel     8
## 8      Daniela     8
## 9        Anita     9
## 12      Melany     9
## 14        Yuli    10
## 18       Karen     8
## 19       David     7
## 20    Antonela     7
notaminima<-subset(x,notas<6)
notaminima
##    Estudiantes NOTAS
## 2       Camila     4
## 5         Alan     1
## 6       Stiven     2
## 10       Katia     2
## 11     Pricila     4
## 13       Karol     2
## 15       Maria     2
## 16   Francisco     5
## 17       Jhony     5
8. ¿De qué alumnos son la máxima y mínima notas.
notaalta[,2]
##  [1]  7 10  8  8  9  9 10  8  7  7
9. Nota media de alumnos, teniendo en cuenta sólo a los que han aprobado.
mean(notaalta[,2])
## [1] 8.3