¿De qué se trata?
Ventajas
¿Cómo obtenerlo?
Algunos ejemplos
Instalamos R
Sugerencia para trabajar: RStudio
Pantalla principal de R
Instalar RStudio
Pantalla principal de RStudio
Sugerencia para trabajar: RStudio
¿Qué es RStudio?
Consola
## [1] 1
## [1] 2
## [1] "1"
## Error in "1" + "1": argumento no-numérico para operador binario
## [1] TRUE
## [1] FALSE
Tipos de variables
Hacer las siguientes operaciones en la consola:
## [1] 3
## [1] 68.11002
## [1] -0.01263105
## Error in 1 + "2": argumento no-numérico para operador binario
## Error in "1" + "2": argumento no-numérico para operador binario
## [1] TRUE
## [1] TRUE
## [1] FALSE
## [1] TRUE
Hacer las siguientes operaciones en la consola:
## [1] TRUE
## [1] FALSE
## [1] TRUE
## [1] TRUE
## [1] TRUE
## [1] 1000
## [1] 31.62278
## [1] TRUE
## [1] TRUE
Modulo
## [1] 0
## [1] 1
## [1] 2
## [1] 4
Ejercicio
## [1] 0
## [1] 0
## [1] 43
Espacio de trabajo (Workspace)
Sintaxis básica:
Funciones útiles
## [1] "numeric"
## [1] "character"
## [1] "logical"
Utilizar la función class para revisar las clases de los siguientes objetos:
Creando objetos
## Error in eval(expr, envir, enclos): objeto 'num_1' no encontrado
## [1] 1
## Error in eval(expr, envir, enclos): objeto 'Num_1' no encontrado
## [1] 3
## Error in num1 + char1: argumento no-numérico para operador binario
Los objetos también pueden ser más cosas:
Crear los siguientes tipos de objetos
Revisar su clase
Ayuda de R (para funciones)
Funciones
Buscar la ayuda de las siguientes funciónes, ¿qué hacen?
## starting httpd help server ... done
Objetos básicos simples
Funciones útiles v2
Para crear cada uno de esos objetos Se crean con una función determinada
## [1] 1 2 3 4 5
## vector1 vector1.1
## 1 1 1
## 2 2 2
## 3 3 3
## 4 4 4
## 5 5 5
## [,1] [,2]
## [1,] NA NA
## [2,] NA NA
## [[1]]
## NULL
##
## [[2]]
## NULL
Crear cada uno de los objetos anteriores:
Ver su estructura Analizar la longitud, número de columnas, renglones y dimensiones
Para accesar cada elemento
## [1] 1
## [1] 2
## vector1 vector1.1
## 1 1 1
## [1] 1 2 3 4 5
## NULL
## [1] 2
## [1] 3
## [,1] [,2]
## [1,] 8 6
## [2,] NA NA
## [,1] [,2]
## [1,] 8 6
## [2,] 7 7
## [[1]]
## [1] "Hey"
##
## [[2]]
## [1] "Que"
## [[1]]
## [,1] [,2]
## [1,] 8 6
## [2,] 7 7
##
## [[2]]
## vector1 vector1.1
## 1 1 1
## 2 2 2
## 3 3 3
## 4 4 4
## 5 5 5
Accesar a las siguientes entradas:
Accesar a las siguientes entradas y sustituirla:
Nombrar elementos
## Obs1 Obs2 Obs3 Obs4 Obs5
## 1 2 3 4 5
colnames(df1)<-c("Col1","Col2")
rownames(df1)<-c("muestra1","muestra2","muestra3","muestra4","muestra5")
df1
## Col1 Col2
## muestra1 1 1
## muestra2 2 2
## muestra3 3 3
## muestra4 4 4
## muestra5 5 5
## C1 C2
## m1 8 6
## m2 7 7
## $lista_A
## [,1] [,2]
## [1,] 8 6
## [2,] 7 7
##
## $lista_B
## vector1 vector1.1
## 1 1 1
## 2 2 2
## 3 3 3
## 4 4 4
## 5 5 5
Crear 2 vectores (vector_a y vector_b), el primero del 1 al 4, y el segundo del 5 al 8. Crear un data frame que se llame datos_nums, donde la col1 se llame: Num1 y la col2: Num2. Accesar mediante corchetes al renglón 2 y columna 1 Accesar mediante corchetes al renglón 4 y columna 2. Sumarlos
Notar el : y su uso, al igual que la asignación de nombre rápida
Otra forma de accesar entradas
## Obs1
## 1
## [1] 1 2 3 4 5
## [1] 1 2 3 4 5
## m1 m2
## 8 7
## C1 C2
## 8 6
## [,1] [,2]
## [1,] 8 6
## [2,] 7 7
## [1] 8
## [1] 1 2 3 4 5
Sumar los vectores anteriores (vector_a y vector_b) mediante el método $.
Más funciones útiles
Averiguar qué hace cada una de las funciones anteriores y utilizarlas para:
Convertir sec1 a caracter (sec1_char) y (sec1_fac) factor Revisar objetos con str y class.
Revisar el objeto cbind_seq Revisen su clase. Sumar la columna 1 y 2 de cbind_seq
Crear un vector de factores (vec_fac) que sea 50 veces “A” y 50 veces “B” (tip, revisen la ayuda de rep)
Consejo
Consejo: así se hacen las cosas
vec_fac<-rep(c("A","B"),each=50)
#Opción 1
base_vec<-data.frame(factor=vec_fac,sec1=cbind_seq[,1],sec2=cbind_seq[,2])
str(base_vec)
## 'data.frame': 100 obs. of 3 variables:
## $ factor: Factor w/ 2 levels "A","B": 1 1 1 1 1 1 1 1 1 1 ...
## $ sec1 : int 1 2 3 4 5 6 7 8 9 10 ...
## $ sec2 : int 101 102 103 104 105 106 107 108 109 110 ...
Consejo: así no (cont.)
## 'data.frame': 100 obs. of 3 variables:
## $ vec_fac: Factor w/ 2 levels "A","B": 1 1 1 1 1 1 1 1 1 1 ...
## $ sec1 : Factor w/ 100 levels "1","10","100",..: 1 13 24 35 46 57 68 79 90 2 ...
## $ sec2 : Factor w/ 100 levels "101","102","103",..: 1 2 3 4 5 6 7 8 9 10 ...
## 'data.frame': 100 obs. of 3 variables:
## $ vec_fac: Factor w/ 2 levels "A","B": 1 1 1 1 1 1 1 1 1 1 ...
## $ sec1 : num 1 13 24 35 46 57 68 79 90 2 ...
## $ sec2 : num 1 2 3 4 5 6 7 8 9 10 ...
Data.frame o matrix
Diferencia entre Factor y Caracter
## [1] A A A B B C
## Levels: A B C
## [1] A A A
## Levels: A B C
## [1] "A" "A" "A"
Podemos poner muchos argumentos dentro de la función Se pueden llamar funciones dentro de otras funciones, siempre y cuando se carguen en el espacio de trabajo.
#function(x)
# {
# nuestra función
# return(el resultado que queremos que regrese #la función)
#}
mi_func1<-function(x)
{
resul<-x+ 2
return(resul)
}
mi_func1(8)
## [1] 10
Crear una función (mi_funcion) que tome como argumento un número (x), le sume la mitad de sí mismo y regrese ese nuevo número.
## [1] 12
Condicional
#if(condicion)
# {
# si se cumple la condición se hace esto
# }else{ #es opcinoal el else, se puede poner o no
# si no, se hace esto
# }
x<-20
if(x>=5)
{
print("El número es mayor o igual a 5")
}else{
print("El número es menor a 5")
}
## [1] "El número es mayor o igual a 5"
Crear una condicional sobre una variable x de caracter, y definir dos mensajes dependiendo si se cumple o no la variable. * p.ej. chara<-“A”, evaluar si es “A” o no lo es. * imprimir el chara es A o B
## [1] "chara es A"
Ciclos
#for(definir variable e intervalo de valores que va a tomar)
# {
# esto se hace de manera cíclica cambiando el valor de la #variable en el intervalo de datos que se le indicó
# }
resul<-vector(length=3)
resul
## [1] FALSE FALSE FALSE
## [1] 1 2 3
Crear ciclo en el cual a un vector de números (1 * 10) se le multiplique 4.
## [1] 4 8 12 16 20 24 28 32 36 40
Crear una función (mi_func2) que permita sumar el número anterior a cada entrada de sum_vec. Sin embargo, tener en cuenta que en la primera entrada esto no se puede hacer. En este caso que la entrada sea igual a sí misma.
mi_func2<-function(x)
{
for(i in 1:length(x))
{
if(i==1)
{
x[i]<-x[i]
}else{
x[i]<-x[i]+ x[(i-1)]
}
}
return(x)
}
x<-seq(1,10,1)
mi_func2(x)
## [1] 1 3 6 10 15 21 28 36 45 55
Recomendaciones para hacer funciones propias
Una pequeña nota adelantada
Otras funciones útiles
Otras funciones útiles ¿Que es NA?
## Obs3
## 3
## Obs1 Obs2 Obs3 Obs4 Obs5
## FALSE FALSE FALSE FALSE FALSE
## Obs2
## "B"
## Obs1 Obs2 Obs3 Obs4 Obs5
## 1 2 3 4 5
## Col1 Col2
## 3 3
## muestra1 muestra2 muestra3 muestra4 muestra5
## 1 2 3 4 5
Utilizar help para ver qué hace cada una de las funciones anteriores. Aplicar las funciones anteriores a base_vec.
En base_vec
Recordar:
Un paso más allá: uso de paquetes
install.packages(“nombre del paquete”)
library(“nombre del paquete”)
Recordar: cada vez que se abre R de nuevo, hay que cargar los paquetes deseados.
Instalar paquetes
## Installing package into 'C:/Users/JonathanVSV/Documents/R/win-library/3.6'
## (as 'lib' is unspecified)
## Error in contrib.url(repos, "source"): trying to use CRAN without setting a mirror
Instalar vegan Cargar vegan
??vegan
para sacar la ayuda y ver qué hace
Paquetes personalizados
Otros paquetes
consultar: https://cran.r-project.org/web/packages/available_packages_by_name.html
Hasta ahora todo ha sido dentro de R
Normalmente las variables se acomodan en las columnas, mientras que en los renglones cada observación.
Cargar Revisar el directorio de trabajo utilizando getwd()
Escribir el nombre del archivo con todo y extensión Abrir BD. El archivo está disponible en la siguiente liga: https://github.com/JonathanVSV/JonathanVSV.github.io/blob/master/Curso_basico_R/BD.csv
Al entrar a la página presionar la tecla Alt y dar click en el botón de “Raw” para descargarlo a su disco duro.
## Country Year CO2.emissions..kt. Livestock.production.index..2004.2006...100.
## 1 Mexico 1961 65305.60 21.04
## 2 Mexico 1962 63809.47 23.02
## 3 Mexico 1963 66361.70 22.73
## 4 Mexico 1964 74278.75 22.72
## 5 Mexico 1965 75246.84 23.88
## 6 Mexico 1966 80930.69 26.24
## Food.production.index..2004.2006...100.
## 1 23.70
## 2 25.39
## 3 26.28
## 4 28.48
## 5 30.82
## 6 33.01
## Crop.production.index..2004.2006...100. Cereal.production..metric.tons.
## 1 28.71 8516733
## 2 30.30 8605792
## 3 32.50 9539077
## 4 37.06 11710533
## 5 40.09 12488283
## 6 42.08 12987982
## GDP.per.capita..current.US.. Life.expectancy.at.birth..total..years.
## 1 359.2909 57.65615
## 2 374.4455 58.18024
## 3 403.8241 58.64290
## 4 463.8963 59.05559
## 5 489.2027 59.43371
## 6 528.9433 59.79322
## Urban.population Urban.population....of.total. Population..total
## 1 20323430 51.590 39394126
## 2 21311766 52.428 40649588
## 3 22339277 53.265 41939880
## 4 23405971 54.100 43264272
## 5 24511884 54.931 44623043
## 6 25656215 55.761 46011038
## Land.area..sq..km.
## 1 1943950
## 2 1943950
## 3 1943950
## 4 1943950
## 5 1943950
## 6 1943950
## 'data.frame': 162 obs. of 13 variables:
## $ Country : Factor w/ 3 levels "Guatemala","Mexico",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ Year : int 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 ...
## $ CO2.emissions..kt. : num 65306 63809 66362 74279 75247 ...
## $ Livestock.production.index..2004.2006...100.: num 21 23 22.7 22.7 23.9 ...
## $ Food.production.index..2004.2006...100. : num 23.7 25.4 26.3 28.5 30.8 ...
## $ Crop.production.index..2004.2006...100. : num 28.7 30.3 32.5 37.1 40.1 ...
## $ Cereal.production..metric.tons. : int 8516733 8605792 9539077 11710533 12488283 12987982 13068481 13925652 13843149 15006401 ...
## $ GDP.per.capita..current.US.. : num 359 374 404 464 489 ...
## $ Life.expectancy.at.birth..total..years. : num 57.7 58.2 58.6 59.1 59.4 ...
## $ Urban.population : int 20323430 21311766 22339277 23405971 24511884 25656215 26839108 28070545 29361089 30708544 ...
## $ Urban.population....of.total. : num 51.6 52.4 53.3 54.1 54.9 ...
## $ Population..total : int 39394126 40649588 41939880 43264272 44623043 46011038 47429812 48894019 50423481 52029861 ...
## $ Land.area..sq..km. : int 1943950 1943950 1943950 1943950 1943950 1943950 1943950 1943950 1943950 1943950 ...
Otra opción útil para fijar rutas de trabajo es setwd(“Ruta a la que quieres cambiar”)
Recomendación para leer archivos
Exportar Escribir el nombre del archivo con todo y extensión
Consultar datos de https://data.worldbank.org/ Ver archivos y ver de qué se trata ¿Qué nos interesa? Seleccionar por lo menos 3 variables. Acomodar datos para importar desde Excel Guardar como separado por comas (.csv) Importar una hoja de datos Guardarlo en un objeto Ver su estructura Describir la hoja de datos
Se pueden filtrar datos mediante
subset(datos, seleccionar los datos que cumplan con esta condición) datos2<-subset(datos,datos$var1==x)
## Country Year CO2.emissions..kt. Livestock.production.index..2004.2006...100.
## 1 Mexico 1961 65305.60 21.04
## 2 Mexico 1962 63809.47 23.02
## 3 Mexico 1963 66361.70 22.73
## 4 Mexico 1964 74278.75 22.72
## 5 Mexico 1965 75246.84 23.88
## 6 Mexico 1966 80930.69 26.24
## Food.production.index..2004.2006...100.
## 1 23.70
## 2 25.39
## 3 26.28
## 4 28.48
## 5 30.82
## 6 33.01
## Crop.production.index..2004.2006...100. Cereal.production..metric.tons.
## 1 28.71 8516733
## 2 30.30 8605792
## 3 32.50 9539077
## 4 37.06 11710533
## 5 40.09 12488283
## 6 42.08 12987982
## GDP.per.capita..current.US.. Life.expectancy.at.birth..total..years.
## 1 359.2909 57.65615
## 2 374.4455 58.18024
## 3 403.8241 58.64290
## 4 463.8963 59.05559
## 5 489.2027 59.43371
## 6 528.9433 59.79322
## Urban.population Urban.population....of.total. Population..total
## 1 20323430 51.590 39394126
## 2 21311766 52.428 40649588
## 3 22339277 53.265 41939880
## 4 23405971 54.100 43264272
## 5 24511884 54.931 44623043
## 6 25656215 55.761 46011038
## Land.area..sq..km.
## 1 1943950
## 2 1943950
## 3 1943950
## 4 1943950
## 5 1943950
## 6 1943950
## Country Year CO2.emissions..kt.
## 40 Mexico 2000 398382.880
## 94 Guatemala 2000 8368.094
## 148 USA 2000 5693684.894
## Livestock.production.index..2004.2006...100.
## 40 86.83
## 94 72.93
## 148 97.48
## Food.production.index..2004.2006...100.
## 40 88.41
## 94 80.78
## 148 95.98
## Crop.production.index..2004.2006...100. Cereal.production..metric.tons.
## 40 88.51 27995057
## 94 84.77 1160727
## 148 94.66 342628299
## GDP.per.capita..current.US.. Life.expectancy.at.birth..total..years.
## 40 6720.902 74.29973
## 94 1655.596 67.77102
## 148 36449.855 76.63659
## Urban.population Urban.population....of.total. Population..total
## 40 76006974 74.722 101719673
## 94 5257631 45.127 11650743
## 148 223069137 79.057 282162411
## Land.area..sq..km.
## 40 1943950
## 94 107160
## 148 9161920
## Country Year CO2.emissions..kt. Livestock.production.index..2004.2006...100.
## 1 Mexico 1961 65305.60 21.04
## 2 Mexico 1962 63809.47 23.02
## 3 Mexico 1963 66361.70 22.73
## 4 Mexico 1964 74278.75 22.72
## 5 Mexico 1965 75246.84 23.88
## 6 Mexico 1966 80930.69 26.24
## Food.production.index..2004.2006...100.
## 1 23.70
## 2 25.39
## 3 26.28
## 4 28.48
## 5 30.82
## 6 33.01
## Crop.production.index..2004.2006...100. Cereal.production..metric.tons.
## 1 28.71 8516733
## 2 30.30 8605792
## 3 32.50 9539077
## 4 37.06 11710533
## 5 40.09 12488283
## 6 42.08 12987982
## GDP.per.capita..current.US.. Life.expectancy.at.birth..total..years.
## 1 359.2909 57.65615
## 2 374.4455 58.18024
## 3 403.8241 58.64290
## 4 463.8963 59.05559
## 5 489.2027 59.43371
## 6 528.9433 59.79322
## Urban.population Urban.population....of.total. Population..total
## 1 20323430 51.590 39394126
## 2 21311766 52.428 40649588
## 3 22339277 53.265 41939880
## 4 23405971 54.100 43264272
## 5 24511884 54.931 44623043
## 6 25656215 55.761 46011038
## Land.area..sq..km.
## 1 1943950
## 2 1943950
## 3 1943950
## 4 1943950
## 5 1943950
## 6 1943950
## Country Year CO2.emissions..kt.
## 40 Mexico 2000 398382.880
## 94 Guatemala 2000 8368.094
## 148 USA 2000 5693684.894
## Livestock.production.index..2004.2006...100.
## 40 86.83
## 94 72.93
## 148 97.48
## Food.production.index..2004.2006...100.
## 40 88.41
## 94 80.78
## 148 95.98
## Crop.production.index..2004.2006...100. Cereal.production..metric.tons.
## 40 88.51 27995057
## 94 84.77 1160727
## 148 94.66 342628299
## GDP.per.capita..current.US.. Life.expectancy.at.birth..total..years.
## 40 6720.902 74.29973
## 94 1655.596 67.77102
## 148 36449.855 76.63659
## Urban.population Urban.population....of.total. Population..total
## 40 76006974 74.722 101719673
## 94 5257631 45.127 11650743
## 148 223069137 79.057 282162411
## Land.area..sq..km.
## 40 1943950
## 94 107160
## 148 9161920
Ver los valores únicos hay en una variable * País (Country) * Year trasponer datos de Country Promedio de variable de emisiones de C02 Desviación estándar de emisiones de C02
## [1] Mexico Guatemala USA
## Levels: Guatemala Mexico USA
## [1] 162
## [1] 1685032
## Warning in mean.default(datos$Country): argument is not numeric or logical:
## returning NA
## [1] NA
## [1] 15.63411
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
## [1,] 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974
## [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26]
## [1,] 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986
## [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37] [,38]
## [1,] 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998
## [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48] [,49] [,50]
## [1,] 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
## [,51] [,52] [,53] [,54] [,55] [,56] [,57] [,58] [,59] [,60] [,61] [,62]
## [1,] 2011 2012 2013 2014 1961 1962 1963 1964 1965 1966 1967 1968
## [,63] [,64] [,65] [,66] [,67] [,68] [,69] [,70] [,71] [,72] [,73] [,74]
## [1,] 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980
## [,75] [,76] [,77] [,78] [,79] [,80] [,81] [,82] [,83] [,84] [,85] [,86]
## [1,] 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992
## [,87] [,88] [,89] [,90] [,91] [,92] [,93] [,94] [,95] [,96] [,97] [,98]
## [1,] 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
## [,99] [,100] [,101] [,102] [,103] [,104] [,105] [,106] [,107] [,108]
## [1,] 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
## [,109] [,110] [,111] [,112] [,113] [,114] [,115] [,116] [,117] [,118]
## [1,] 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970
## [,119] [,120] [,121] [,122] [,123] [,124] [,125] [,126] [,127] [,128]
## [1,] 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980
## [,129] [,130] [,131] [,132] [,133] [,134] [,135] [,136] [,137] [,138]
## [1,] 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990
## [,139] [,140] [,141] [,142] [,143] [,144] [,145] [,146] [,147] [,148]
## [1,] 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
## [,149] [,150] [,151] [,152] [,153] [,154] [,155] [,156] [,157] [,158]
## [1,] 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
## [,159] [,160] [,161] [,162]
## [1,] 2011 2012 2013 2014
Ordenar
## [1] 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975
## [16] 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990
## [31] 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
## [46] 2006 2007 2008 2009 2010 2011 2012 2013 2014
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
## [51] 51 52 53 54
## [1] 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975
## [16] 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990
## [31] 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
## [46] 2006 2007 2008 2009 2010 2011 2012 2013 2014
Buscar en la ayuda para qué sirve cada función Ordenar los datos en orden decrecente en función del año
## Country Year CO2.emissions..kt. Livestock.production.index..2004.2006...100.
## 1 Mexico 1961 65305.60 21.04
## 2 Mexico 1962 63809.47 23.02
## 3 Mexico 1963 66361.70 22.73
## 4 Mexico 1964 74278.75 22.72
## 5 Mexico 1965 75246.84 23.88
## 6 Mexico 1966 80930.69 26.24
## Food.production.index..2004.2006...100.
## 1 23.70
## 2 25.39
## 3 26.28
## 4 28.48
## 5 30.82
## 6 33.01
## Crop.production.index..2004.2006...100. Cereal.production..metric.tons.
## 1 28.71 8516733
## 2 30.30 8605792
## 3 32.50 9539077
## 4 37.06 11710533
## 5 40.09 12488283
## 6 42.08 12987982
## GDP.per.capita..current.US.. Life.expectancy.at.birth..total..years.
## 1 359.2909 57.65615
## 2 374.4455 58.18024
## 3 403.8241 58.64290
## 4 463.8963 59.05559
## 5 489.2027 59.43371
## 6 528.9433 59.79322
## Urban.population Urban.population....of.total. Population..total
## 1 20323430 51.590 39394126
## 2 21311766 52.428 40649588
## 3 22339277 53.265 41939880
## 4 23405971 54.100 43264272
## 5 24511884 54.931 44623043
## 6 25656215 55.761 46011038
## Land.area..sq..km.
## 1 1943950
## 2 1943950
## 3 1943950
## 4 1943950
## 5 1943950
## 6 1943950
Gráficas básicas
Hagan una gráfica de Año vs producción de cereales
plot(datos$Year,datos$CO2.emissions..kt.,type="l",col="red",
ylim=c(2000000,6000000),xlim=c(1980,2010))
Ver ayuda de plot Crear una gráfica de Año vs Población total
En las gráficas anteriores estábamos graficando las variables de los tres países juntas, pero una buena gráfica debería poder separar por país. En la siguiente sección veremos cómo hacer eso.
#Simple plot
#BD
datos<-read.csv("BD.csv")
M_C02<-datos[which(datos[,1]=="Mexico"),]
G_C02<-datos[which(datos[,1]=="Guatemala"),]
U_C02<-datos[which(datos[,1]=="USA"),]
Gráfica puntos
#plot de puntos
plot(M_C02[,2],M_C02[,3],col="red",type="p",xlab="year",ylab="C02 (kt)",
xlim=c(1961,2014),ylim=c(0,6000000))
points(U_C02[,2],U_C02[,3],col="blue",type="p",
xlim=c(1961,2014),ylim=c(0,6000000))
points(G_C02[,2],G_C02[,3],col="green",type="p",
xlim=c(1961,2014),ylim=c(0,6000000))
Histograma
#Histograma
hist(datos$Life.expectancy.at.birth..total..years.,
xlab="Expectativa de vida (años)",ylab="Frecuencia")
Densidad de probabilidad
Dotchart
Barplot
pobl_2014<-subset(datos,datos$Year==2014)
pobl_2014<-data.frame(pobl_2014[,1],pobl_2014$Population..total)
barplot(pobl_2014[,2],names.arg=pobl_2014[,1],
ylab="Población en 2014 (personas)",xlab="País")
Line chart
plot(M_C02[,2],M_C02[,3],col="red",type="l",xlab="year",ylab="C02 (kt)",
xlim=c(1961,2014),ylim=c(0,6000000))
lines(U_C02[,2],U_C02[,3],col="blue",type="l",
xlim=c(1961,2014),ylim=c(0,6000000))
lines(G_C02[,2],G_C02[,3],col="green",type="l",
xlim=c(1961,2014),ylim=c(0,6000000))
Pie
C02_2014<-subset(datos,datos$Year==2014)
C02_2014<-data.frame(C02_2014$Country,C02_2014$CO2.emissions..kt.)
pie(C02_2014[,2],labels=C02_2014[,1])
Boxplot
Hacer una gráfica de alguno de los tipos que vimos ahorita con los datos de “datos”.
ggplot2, otro paquete de R.
plotter<-data.frame(datos[,c(1:3)])
colnames(plotter)<-c("Country","Year","C02")
p1= ggplot(plotter,aes(x=Year,y=C02,factor=Country,col=Country))
p1= p1 + geom_line()
p1 = p1 + theme_bw()
p1 = p1 + theme(strip.background=element_rect(fill="white"),plot.title=element_text(size=12,hjust = 0),text=element_text(size=14),axis.line=element_line(colour="black"),panel.grid.major=element_blank(),panel.grid.minor=element_blank(),panel.border=element_blank(),panel.background=element_rect(fill="white"))
p1 = p1 + scale_x_continuous(expand=c(0,0),limit=c(1961,2014))
p1 = p1 + scale_y_continuous(expand=c(0,0),limit=c(0,6000000))
Exportar gráficas
jpeg(filename = "Gráfica_sencilla.jpeg",width=18,height=12,units="cm",res=300)
plot(M_C02[,2],M_C02[,3],col="red",type="l",xlab="year",ylab="C02 (kt)",
xlim=c(1961,2014),ylim=c(0,6000000))
lines(U_C02[,2],U_C02[,3],col="blue",type="l",
xlim=c(1961,2014),ylim=c(0,6000000))
lines(G_C02[,2],G_C02[,3],col="green",type="l",
xlim=c(1961,2014),ylim=c(0,6000000))
dev.off()
## png
## 2
## png
## 2
Exportar gráficas
jpeg()
png()
pdf()
bmp()
tiff()
jpeg(…)
plot(…)
dev.off()
Exportar una gráfica a jpeg.
No existe la función o el objeto Error: object ‘X’ not found
Warnings
Escribir warnings() para ver de qué se tratan las advertencias.
Normalmente no se tratan de errores críticos, pero pueden avisar sobre detalles importantes a considerar en el análisis (pueden sugerir cambios en el análisis).
No existe el archivo Error in file(file, “rt”) : cannot open the connection In addition: Warning message: cannot open file ‘X’: No such file or directory
Revisar que la ruta esté escrita correctamente, utilizando:
Error de asignación de dimensiones
Error in X : subscript out of bounds
Revisar que el objeto sea del tipo y dimensiones que se piensa (p.ej. data frame y con x renglones y columnas)
Revisar la estructura del objeto
Error de asignación de dimensiones