e<- exp(1)
log ( e ); log( 8, 2)[1] 1
[1] 3
En R las funciones presentan la estuctura function(arg1, arg2,..., opt1, opt2,..), donde los argumentos deben especificarse obligatoriamente (arg) y las opciones, solo si se desean cambiar de la opción por defecto. Por ejemplo, la función exponencial \(e^x\), se escribe como exp(x) y la función logarítmo natural \(\ln(x)\) como log(x). Ahora bien, en la función \(\ln(x)\) está la opción de usar una base distinta a la del logarítmo natural, por tanto, si se ocupa una base distinta, solamente se introduce como una entrada adicional de la función.
e<- exp(1)
log ( e ); log( 8, 2)[1] 1
[1] 3
Nota: Se recomienda utilizar objetos para guardar resultados que se van a utilizar varias veces en el trabajo. Por ejemplo, en el caso anterior se guardó el valor de exp(1) en el objeto e.
En R las variables se generan con la función c(x1, x2, x3,...). Los principales formatos de las variables son los siguientes:
jug<-c("Lionel Messi","Luis Suárez","Antoine Griezmann","Arturo Vidal","Ansu Fati", "Otros")
goles<-c(25,16,9,8,7,19)
class(jug); class(goles)[1] "character"
[1] "numeric"
Para construir un factor hay que indicarle al programa que la variable generada es un factor y se le deben indicar los niveles
jugador<- factor(jug, levels=jug)
class(jugador)[1] "factor"
Los elementos especificos de una variable se pueden llamar con la sintaxis var[posición].
jug[3] [1] "Antoine Griezmann"
Algunas sintaxis para construir variables numéricas útiles son las siguientes:
a:brep(a, n)seq(a, b, n)sample(a:b, n)1:10 [1] 1 2 3 4 5 6 7 8 9 10
rep(5,10) [1] 5 5 5 5 5 5 5 5 5 5
seq(1,10,2)[1] 1 3 5 7 9
sample(1:10, 5) [1] 3 4 5 6 1
Los conjuntos de datos se generan con la función data.frame(v1, v2, v3,...).
Gol_Barc<- data.frame(jug, goles)
Gol_Barc jug goles
1 Lionel Messi 25
2 Luis Suárez 16
3 Antoine Griezmann 9
4 Arturo Vidal 8
5 Ansu Fati 7
6 Otros 19
class(Gol_Barc); names(Gol_Barc)[1] "data.frame"
[1] "jug" "goles"
Los elementos especificos de una variable se pueden llamar con la sintaxis data.frame[pos_x, pos_y].
Gol_Barc[1,1][1] "Lionel Messi"
Gol_Barc[ 1, ] # llama la fila 1 jug goles
1 Lionel Messi 25
Gol_Barc[ , 1] #llama la columna 1[1] "Lionel Messi" "Luis Suárez" "Antoine Griezmann"
[4] "Arturo Vidal" "Ansu Fati" "Otros"
El software R posee varias funciones para cargar bases de datos. En particular, si la base proviene de un archivo .csv, se puede recurrir a la función read.csv(data.frame_lab, sep= ). Para utilizar esta función se requiere indicarle al software la carpeta dónde se ubica el conjunto, por medio de la siguiente secuencia con el menú del software: session/set worwing directory/choose directory; posteriormente, se escribe el nombre del conjunto de de datos data.frame_lab entre comillas, en el espacio correspondiente de la función.
Los datos de la base sobre países se puede cargar con la siguiente instrucción:
BASE<-read.csv("Paises.csv",sep=";") # donde sep es la opción para especificar el separador de datos que utiliza el csv, por default es una coma.
class(BASE);names(BASE)[1] "data.frame"
[1] "cod" "name" "area" "pob" "HDIrank21"
[6] "hdi_2021" "le_2021" "Sch_exp21" "Sch_mean21" "GNI_pc21"
[11] "GNIminHDI21" "HDIrank20" "region" "hdi_2010" "hdi_2011"
[16] "hdi_2012" "hdi_2013" "hdi_2014" "hdi_2015" "hdi_2016"
[21] "hdi_2017" "hdi_2018" "hdi_2019" "hdi_2020" "le_2010"
[26] "le_2011" "le_2012" "le_2013" "le_2014" "le_2015"
[31] "le_2016" "le_2017" "le_2018" "le_2019" "le_2020"
Las variables de la base se pueden llamar de dos maneras:
attach(data.frame), lo cual permitirá que las variables estén disponibles en la plataforma con solo escribir su nombre.data.frame$var.De esta manera, para llamar a la variable name de la base de datos llamado BASE, se puede recurrir a esta función:
#caso1
attach(BASE)
x<-name#caso 2
x<-BASE$name
head(x)[1] "Afghanistan" "Angola" "Albania"
[4] "Andorra" "United Arab Emirates" "Argentina"
Una vez cargada la base de datos se pueden explorar las variables del conjunto de datos. Para iniciar esta exploración se puede consultar la dimensión de la base y los nombres de las variables.
dim(BASE); names(BASE)[1] 195 35
[1] "cod" "name" "area" "pob" "HDIrank21"
[6] "hdi_2021" "le_2021" "Sch_exp21" "Sch_mean21" "GNI_pc21"
[11] "GNIminHDI21" "HDIrank20" "region" "hdi_2010" "hdi_2011"
[16] "hdi_2012" "hdi_2013" "hdi_2014" "hdi_2015" "hdi_2016"
[21] "hdi_2017" "hdi_2018" "hdi_2019" "hdi_2020" "le_2010"
[26] "le_2011" "le_2012" "le_2013" "le_2014" "le_2015"
[31] "le_2016" "le_2017" "le_2018" "le_2019" "le_2020"
Luego, se puede generar una base con solo las variables de interés
BASEn<- BASE[, c(2, 3, 4)] # Seleccionar name, area y pobUna primera exploración de las variables de la base puede realizarse con la función apply(.df, 2, fun= , na.rm = ). En fun se pueden agregar distintas funciones que sean de utilidad, en particular, observar el mínimo y el máximo permiten observar de entrada si hay problemas de codificación. La opción na.rm se fija en T (true) para indicar que ignore los valores perdidos en el cálculo del estadístico.
## Ver el mínimo y el máximo de las variables
apply(BASEn, 2, min, na.rm=T ) name area pob
"Afghanistan" " 20" " 11069"
apply(BASEn, 2, max, na.rm=T ) name area pob
"Zimbabwe" "17098250" "1411100000"
Por otro lado, también es importante ver si las funciones poseen muchos valores perdidos. Para esto, se puede utilizar el código siguiente.
## Contar los valores perdidos
na_count <-function(x) {sum(is.na(x))}
apply(BASEn, 2, na_count )name area pob
0 0 0
Luego de asegurar que las variables estuvieran bien cargadas y tabuladas, se puede pasar a estudiar algunos estadísticos o propiedades básicas de ellas. Por ejemplo:
mean(var, na.rm=T)median(var, na.rm=T)max(var, na.rm=T)min(var, na.rm=T)sd(var, na.rm=T)sum(var, na.rm=T)En el caso de la variable población (pob), se tienen los siguiente valores:
## Contar los valores perdidos
pob <- BASEn$pob
max(pob, na.rm=T)[1] 1411100000
mean(pob, na.rm=T)[1] 39943539
median(pob, na.rm=T)[1] 8916864
min(pob, na.rm=T)[1] 11069