2 * 2.5
## [1] 5
9%%2
## [1] 1
a<-c(27,23,29,24,31) #Creación del vector
amigos<- mean(a) #calcular media, y que se guarde en el fichero (amigos)
mean(a) #calcularla nuevamente pero que el resultado salga en pantalla
## [1] 26.8
y1<-c(1,3,5,7)
y1
## [1] 1 3 5 7
#Ahora, utilizando la función seq()
y2<-seq(1,7,2)
y2
## [1] 1 3 5 7
#Definimos
x<-c(1,2,3,4,5,6)
y<-c(7,8)
z<-c(9,10,11,12)
x+x
## [1] 2 4 6 8 10 12
x+y
## [1] 8 10 10 12 12 14
Podemos notar que lo que R hizo fue sumar entrada por entrada, pero como la dimensión de y es menor a la de x, Para poder seguir sumando R “pega” las entradas del vector de menor dimensión al final de este, y hace esto las veces necesarias para que todas las entradas del vector de mayor dimensión tenga una entrada del otro vector que sumarle. En este caso, y=(7,8,7,8,7,8)
x+z
## Warning in x + z: longitud de objeto mayor no es múltiplo de la longitud de uno
## menor
## [1] 10 12 14 16 14 16
En este caso sigue la misma metodologia anterior, mandando el resutado hasta donde termina el vector de longitud mayor. Sin embargo, nos avisa que la diemnsión del vector que es menor no es un multiplo del de mayor dimensión.
x<-c(1,2,3,4,5,6)
Todas las matrices se han definido a partir de matrix(x,…). Reproduce el código necesario para obtener cada una de ellas.
m1<-matrix(x, ncol = 3)
m1
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
m2<-matrix(x, ncol=2)
m2
## [,1] [,2]
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
m3<-matrix(x, ncol = 3, byrow = TRUE)
m3
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
m4<-matrix(x, ncol=3, nrow = 3)
m4
## [,1] [,2] [,3]
## [1,] 1 4 1
## [2,] 2 5 2
## [3,] 3 6 3
A<-matrix(c(2,1,3,4), ncol = 2)
B<-matrix(c(3,8), ncol = 1)
\(*\) hace el producto entrada por entrada
%*% hace el producto de matrices como lo conocemos algebraicamente
outer(A,B) hace el producto externo entre matrices
#A*B
NOTA: A\(*\)B no puede desarrollarse pues las matrices son de diferente dimensión, lo que imposibilita el producto entra por entrada
A%*%B
## [,1]
## [1,] 30
## [2,] 35
outer(A,B)
## , , 1, 1
##
## [,1] [,2]
## [1,] 6 9
## [2,] 3 12
##
## , , 2, 1
##
## [,1] [,2]
## [1,] 16 24
## [2,] 8 32
nombre<-c("Ana", "Luis", "Pedro", "Juan", "Eva", "Jorge")
edad<-c(23,24,22,24,21,22)
sexo<-c("M","H","H","H","M","H")
sexf<-as.factor(sexo)
sexf
## [1] M H H H M H
## Levels: H M
Como podemos ver los niveles son H y M, es decir Hombre y Mujer
¿Cuál es el código de R da como resultado esta salida?
amigos<-data.frame(nombre, edad, sexo)
amigos
## nombre edad sexo
## 1 Ana 23 M
## 2 Luis 24 H
## 3 Pedro 22 H
## 4 Juan 24 H
## 5 Eva 21 M
## 6 Jorge 22 H
media<-tapply(edad, sexo, mean)
media
## H M
## 23 22
factorial<-function(n){
if(n < 0){
return("Numero invalido, n debe ser mayor o igual a 0")
}else{
if(round(n)!= n){
return("Numero invalido, n debe ser entero")
}else{
if(n==0 || n==1){
return(1)
}else{
return(n*factorial(n-1))
}
}
}
}
NOTA: La siguient función pide la fecha acual y la fecha de nacimiento, todo con números. Devuelve fecha exacta, años, meses y dás. Y hace diferencia depensiendo el mes (si tiene 30 o 31 días), lo que no contempla es si es año bisiesto.
edades<- function(diaActual, mesActual, anioActual, diaNac, mesNac, anioNac){
anios<-anioActual-anioNac
meses<- mesActual-mesNac
dias<- diaActual-diaNac
if(dias<0){
meses<-meses-1
dias<-31+dias
}
if(mesActual == 3){
dias<-dias-3
}
if(mesActual == 5|| mesActual==7|| mesActual== 10|| mesActual ==12){
dias<-dias-1
}
if(meses<0){
anios<-anios-1
meses<-12+meses
}
edad<-(c(anios, meses, dias))
return(edad)
}
Caption for the picture.
par.impar<-function(n){
pares<-0
impares<-0
for (i in 1:n) {
if(i%%2 == 0){
pares<-pares+i
}else{
impares<-impares+i
}
}
print(paste("La suma de los pares es:", pares))
print(paste("La suma de los impares es:", impares))
}
par.impar(200)
## [1] "La suma de los pares es: 10100"
## [1] "La suma de los impares es: 10000"