¿Que es una matriz? Conjunto de elementos del mismo tipo acomodados en numero de columnas y filas. Se utiliza mtrix().El segundo argumneto byrow indica que la matriz se llena por las filas (TRUE) aunque tambien se puede acomodar por columna (FALSE). El tercer argumento nrow indica el numero de columnas que debera tener la matriz.

matrix(1:9,byrow=TRUE,nrow=3)
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9

La matrix anterior se acomodo conforme a dilas, ahora se acomodaran por columnas.

matrix(1:9,byrow=FALSE,nrow=3)
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9

VECTORES, MATRICES Y DATA.FRAME:Matriz

new_hope<-c(460.998,314.4)
empire_strikes<-c(290.475,247.900)
return_jedi<-c(309.306,165.8)
box_office<-c(new_hope,empire_strikes,return_jedi)
box_office
## [1] 460.998 314.400 290.475 247.900 309.306 165.800

Construya una matriz con 3 filas, donde cada fila represente una película. Use la funcion trix()para realizarlo.

star_wars_matrix<-matrix(box_office,byrow=TRUE,nrow=3)

Para nombrar las filas y las columnas:

region<-c("US","non-US")
titles<-c("A New Hope","The Empire Strikes Back","Return of the Jedi")
rownames(star_wars_matrix)<-titles
colnames(star_wars_matrix)<-region
star_wars_matrix
##                              US non-US
## A New Hope              460.998  314.4
## The Empire Strikes Back 290.475  247.9
## Return of the Jedi      309.306  165.8

¿Como se haria para obtener un dato preciso de su matriz, es decir, mediante codigo decir cuanto gano return of the jedi en US?

star_wars_matrix[3,1]<-409
star_wars_matrix
##                              US non-US
## A New Hope              460.998  314.4
## The Empire Strikes Back 290.475  247.9
## Return of the Jedi      409.000  165.8

FACTORES Se refiere a un tipo de dato estadistico para almacenar en variables categoricas. La variable categorica pertenece a un numero limitado de categorias y la continua puede corresponder a un numero infinito de valores. Se utiliza la funcion factor().Primero se crea un vector que contenga una variabe categorica.

vector_sexo<-c("Male","Female","Female","Male","Male")
vector_sexo
## [1] "Male"   "Female" "Female" "Male"   "Male"
factor_sexo<-factor(vector_sexo)
factor_sexo
## [1] Male   Female Female Male   Male  
## Levels: Female Male

Variable nominal: Sexo Variable ordinal: Temperatura

FACTORES - NIVELES DE FACTORES Para cambiar el orden l nombre de los niveles se utiliza levels(). La estructura es: Levels(facto_levels)

class(factor_sexo)
## [1] "factor"
factor_vector_sexo<-factor(vector_sexo)
levels(factor_vector_sexo)<-c("Male","Female")
factor_vector_sexo
## [1] Female Male   Male   Female Female
## Levels: Male Female

Un grupo de estudiantes de salud publica encuesto a 11 personas de entre 20 y 24 años para conocer su condicion general de salud, segun su percepcion personal. Se les pidio clasificar su estado de salud en una de las siguientes tres categorias: Buena, Regular y Mala. Las respuestas obtenidas, en el mismo orden en que se recopilaron fueron: buena, buena, regular, mala, buena, regular, mala, regular, buena, regular, mala. 1. Crear vector con las respuestad de los jovenes. 2. Convierta el vector a un factor, asigne un nombre y aplique summary. 3. Convierta el vector en un factor ordenado donde los niveles sean buena, regular y mala, asigne el nombre y aplique summary. 4. Indicar diferencias.

young_ans<-c("buena","buena","regular","mala","buena","regular","mala","regular","buena","regular","mala")
young_ans
##  [1] "buena"   "buena"   "regular" "mala"    "buena"   "regular" "mala"   
##  [8] "regular" "buena"   "regular" "mala"
factor_ans<-factor(young_ans)
summary(factor_ans)
##   buena    mala regular 
##       4       3       4
fact_ans<-factor(factor_ans,ordered=TRUE,levels=c("buena","regular","mala"))
fact_ans
##  [1] buena   buena   regular mala    buena   regular mala    regular buena  
## [10] regular mala   
## Levels: buena < regular < mala
summary(fact_ans)
##   buena regular    mala 
##       4       4       3

Factores_Niveles de factores Encontramos una nuvea aplicacion para el comando summary() Esta funcion nos indica el numero total de cada uno de los niveles. Otras funciones son tail(), head() y str().

Actividad: Se recabo informacion sobre salud mental de alumnos. Realizar vectores (3) y seguir las instrucciones.

nombres<-c("Marcel","Surya","Alam","Enrique","Eddy","Cesar","Jany","Yubi","Noelia")
edad<-c(26,32,31,27,35,35,29,24,39)
estres<-c("Alto","Moderado","Bajo","Alto","Moderado","Bajo","Alto","Moderado","Alto")
estres_factor<-factor(estres)
vector_estres_vector<-cbind(nombres,edad,estres)
vector_estres_vector
##       nombres   edad estres    
##  [1,] "Marcel"  "26" "Alto"    
##  [2,] "Surya"   "32" "Moderado"
##  [3,] "Alam"    "31" "Bajo"    
##  [4,] "Enrique" "27" "Alto"    
##  [5,] "Eddy"    "35" "Moderado"
##  [6,] "Cesar"   "35" "Bajo"    
##  [7,] "Jany"    "29" "Alto"    
##  [8,] "Yubi"    "24" "Moderado"
##  [9,] "Noelia"  "39" "Alto"
summary(estres_factor)
##     Alto     Bajo Moderado 
##        4        2        3

Hay que cambiar un dato entonces escribimos: data[#Fila,#Columna]<-dato real data es el nombre de tu base

vector_estres_vector[6,3]<-"Alto"
vector_estres_vector
##       nombres   edad estres    
##  [1,] "Marcel"  "26" "Alto"    
##  [2,] "Surya"   "32" "Moderado"
##  [3,] "Alam"    "31" "Bajo"    
##  [4,] "Enrique" "27" "Alto"    
##  [5,] "Eddy"    "35" "Moderado"
##  [6,] "Cesar"   "35" "Alto"    
##  [7,] "Jany"    "29" "Alto"    
##  [8,] "Yubi"    "24" "Moderado"
##  [9,] "Noelia"  "39" "Alto"

Data.Frame Es una estructura de datos bidimensional (como una tabla) que almacena datos en filas y columnas. Para acceder a una variable dentro de un data.frame se utiliza signo \(, ejemplo:data_frame\)edad data.frame(vec1,vec2,vec3,…) subset(data_frame,subset=condicion_deseada)

name<-c("Mercurio","Venus","Tierra","Marte","Jupiter","Saturno","Urano","Neptuno")
tipo<-c("Terrestre","Terrestre","Terrestre","Terrestre","Gaseoso","Gaseoso","Gaseoso","Gaseoso")
diametro<-c(0.382,0.949,1,0.532,11.209,9.449,4.007,3.883)
rotacion<-c(58.64,-243.02,1,1.03,0.41,0.43,-0.72,0.67)
anillos<-c(FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE)
planetas_df<-data.frame(name,tipo,diametro,rotacion,anillos)
planetas_df
##       name      tipo diametro rotacion anillos
## 1 Mercurio Terrestre    0.382    58.64   FALSE
## 2    Venus Terrestre    0.949  -243.02   FALSE
## 3   Tierra Terrestre    1.000     1.00   FALSE
## 4    Marte Terrestre    0.532     1.03   FALSE
## 5  Jupiter   Gaseoso   11.209     0.41    TRUE
## 6  Saturno   Gaseoso    9.449     0.43    TRUE
## 7    Urano   Gaseoso    4.007    -0.72    TRUE
## 8  Neptuno   Gaseoso    3.883     0.67    TRUE
class(planetas_df)
## [1] "data.frame"
head(planetas_df,3)
##       name      tipo diametro rotacion anillos
## 1 Mercurio Terrestre    0.382    58.64   FALSE
## 2    Venus Terrestre    0.949  -243.02   FALSE
## 3   Tierra Terrestre    1.000     1.00   FALSE
tail(planetas_df,3)
##      name    tipo diametro rotacion anillos
## 6 Saturno Gaseoso    9.449     0.43    TRUE
## 7   Urano Gaseoso    4.007    -0.72    TRUE
## 8 Neptuno Gaseoso    3.883     0.67    TRUE
str(planetas_df)
## 'data.frame':    8 obs. of  5 variables:
##  $ name    : chr  "Mercurio" "Venus" "Tierra" "Marte" ...
##  $ tipo    : chr  "Terrestre" "Terrestre" "Terrestre" "Terrestre" ...
##  $ diametro: num  0.382 0.949 1 0.532 11.209 ...
##  $ rotacion: num  58.64 -243.02 1 1.03 0.41 ...
##  $ anillos : logi  FALSE FALSE FALSE FALSE TRUE TRUE ...
summary(planetas_df)
##      name               tipo              diametro          rotacion        
##  Length:8           Length:8           Min.   : 0.3820   Min.   :-243.0200  
##  Class :character   Class :character   1st Qu.: 0.8448   1st Qu.:   0.1275  
##  Mode  :character   Mode  :character   Median : 2.4415   Median :   0.5500  
##                                        Mean   : 3.9264   Mean   : -22.6950  
##                                        3rd Qu.: 5.3675   3rd Qu.:   1.0075  
##                                        Max.   :11.2090   Max.   :  58.6400  
##   anillos       
##  Mode :logical  
##  FALSE:4        
##  TRUE :4        
##                 
##                 
## 

Obtenga el subconjunto de aquellos planetas con diametro menor igual a 1 y mayor igual a 1.

subset(planetas_df,subset=diametro>=1)
##      name      tipo diametro rotacion anillos
## 3  Tierra Terrestre    1.000     1.00   FALSE
## 5 Jupiter   Gaseoso   11.209     0.41    TRUE
## 6 Saturno   Gaseoso    9.449     0.43    TRUE
## 7   Urano   Gaseoso    4.007    -0.72    TRUE
## 8 Neptuno   Gaseoso    3.883     0.67    TRUE
subset(planetas_df,subset=diametro<=1)
##       name      tipo diametro rotacion anillos
## 1 Mercurio Terrestre    0.382    58.64   FALSE
## 2    Venus Terrestre    0.949  -243.02   FALSE
## 3   Tierra Terrestre    1.000     1.00   FALSE
## 4    Marte Terrestre    0.532     1.03   FALSE