Composicion de algunos analisis pasados
Obtencion de data
Aqui usamos un lector de dato genérico, especialmente para los países en los que la coma se emplean como decimal. En estos países el csv separa los valores con punto y coma. Por tanto se usa cvs2. Igualmente se puede usar csv, pero entonces es necesario especificar cual es el separador de los datos y cual el separador de los decimales.
disponibilidad <- read.csv2("C:/Disponibilidad.csv",
header = T)
En R las tablas de datos se conoce como data.frame. las Columnas son variables; celdas, casos. Para ver los primeros datos de la tabla que hemos cargadon en la consola de R y tambien podemos emplear otras funciones para “ver” en la data. Algunas acciones generales son:
attach(cancer) #si se quiere acceder a los nombres de las variables sin necesidad de indizar
detach(rgrs) # saca los paquetes del espacio de trabajo
search() # da informacion sobre que cosas estan cargadas en el espacio de trabajo
## [1] ".GlobalEnv" "package:knitr" "package:stats"
## [4] "package:graphics" "package:grDevices" "package:utils"
## [7] "package:datasets" "package:methods" "Autoloads"
## [10] "package:base"
Ya a nivel de cada tabla podemos hacer una serie de analisis para, antes de comenzar a procesar la informacion, podemos observar que hay en la tabla
head(disponibilidad)
## años calorias proteinas
## 1 1996 2267 60.4
## 2 1997 2163 59.6
## 3 1998 2202 64.9
## 4 1999 2127 61.8
## 5 2000 2254 66.4
## 6 2001 2361 68.1
# para obtener el tamaño de la data
names(disponibilidad)
## [1] "años" "calorias" "proteinas"
dim(disponibilidad)
## [1] 11 3
nrow(disponibilidad)
## [1] 11
ncol(disponibilidad)
## [1] 3
El data tiene tres columnas y once casos (filas). Las variables se denominan: años, calorias y proteinas. Y podemos obtener una relacion completa de filas y columnas usando la funcion dim(), u obtener una u otra, empleando las funciones nrow() y ncol()respectivamente. Estas funciones son de gran utilidad cuando trabajamos con data que no conocemos. Supongamos que hemos obtenido una base de datos denominada 'cancer' desde algun sitio web. Lo primero que hacemos con la data es justamente entender cuantos casos tenemos, y los nombres de las variables:
dim(cancer)
## [1] 191 14
names(cancer)
## [1] "pais" "cervica" "colon.recto" "esofago" "higado"
## [6] "leucemia" "mama" "oral" "ovario" "pancreas"
## [11] "pulmon" "vejiga" "gdpcapita" "region"
la data consta de 191 casos y de 14 variables, que son los diferentes tipos de cancer. Podemos tambien obtener informacion adicional de la data
class(disponibilidad)
## [1] "data.frame"
class(disponibilidad$año)
## [1] "integer"
class(cancer$cervica)
## [1] "numeric"
Podemos cambiar el tipo de variable asignado por R:
id$proteina <- as.factor(id$proteina)
Podemos obtener informacion completa sobre el data frame:
str(cancer)
## 'data.frame': 191 obs. of 14 variables:
## $ pais : Factor w/ 191 levels "afghanistan",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ cervica : num 2.6 1.5 3.4 0.8 12.5 5.4 0 5.2 5.5 1 ...
## $ colon.recto: num 6.5 7.1 8.5 14.3 3.5 13.6 5.1 17.1 12.7 13 ...
## $ esofago : num 9.7 2.4 0.5 2.5 4 4.6 1.9 4.8 1.4 3.9 ...
## $ higado : num 3.8 6.7 1.3 4.9 9.6 5.2 3.6 4.1 11.7 3.4 ...
## $ leucemia : num 5.3 5.7 2.9 3.8 1.8 4 2.8 4.4 5 5.1 ...
## $ mama : num 14.2 18.4 16.9 15.5 13 29.8 11 24.8 28 18.2 ...
## $ oral : num 2 4.6 3.5 2.9 3.6 2.7 2.1 2.3 2.6 2.2 ...
## $ ovario : num 1 1.6 1.7 1.9 1.8 8.5 1.5 2.6 3.1 2.5 ...
## $ pancreas : num 2.3 8.9 1.3 4.6 1.3 3.4 4 8.8 9.4 6.2 ...
## $ pulmon : num 7.2 31 10.6 21.6 2.3 8.3 7.4 21.8 39.3 23 ...
## $ vejiga : num 4.3 3.8 5 4.2 1.5 3.1 1.5 3.2 5.9 2.8 ...
## $ gdpcapita : Factor w/ 188 levels "1.098","1.114",..: 148 105 134 115 130 35 102 29 83 71 ...
## $ region : Factor w/ 9 levels "aao","asia","ca",..: 6 5 6 5 9 4 6 8 5 1 ...
# tambien podemos usar la funcion attributes()
attributes(cancer) #mas completo que names
## $names
## [1] "pais" "cervica" "colon.recto" "esofago" "higado"
## [6] "leucemia" "mama" "oral" "ovario" "pancreas"
## [11] "pulmon" "vejiga" "gdpcapita" "region"
##
## $class
## [1] "data.frame"
##
## $row.names
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
## [18] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
## [35] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
## [52] 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
## [69] 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
## [86] 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
## [103] 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
## [120] 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
## [137] 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
## [154] 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
## [171] 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
## [188] 188 189 190 191
# podemos obtener informacion sobre los niveles de una variable dada
levels(cancer$regiones)
## NULL
Para ordenar la data usamos la funcion sort() y podemos ademas ordenar de forma creciente o decreciente:
sort(cancer$cervica, decreasing = TRUE)
## [1] 23.7 22.4 21.8 21.7 21.4 21.4 21.1 21.0 20.3 19.7 19.7 18.9 17.8 16.3
## [15] 15.2 15.1 14.9 14.8 14.7 14.6 14.6 14.3 14.1 14.0 13.3 12.9 12.8 12.5
## [29] 12.5 11.8 11.8 11.7 11.5 11.3 11.2 11.1 10.9 10.5 10.4 10.1 9.9 9.9
## [43] 9.9 9.8 9.7 9.6 9.5 9.5 9.5 9.3 9.3 9.0 9.0 8.9 8.8 8.7
## [57] 8.4 8.3 8.3 8.3 8.1 8.1 8.1 8.1 8.0 8.0 7.9 7.7 7.7 7.7
## [71] 7.6 7.6 7.4 7.3 7.2 7.0 6.7 6.6 6.6 6.5 6.5 6.4 6.3 6.2
## [85] 6.1 6.0 6.0 5.9 5.9 5.7 5.6 5.5 5.5 5.5 5.4 5.2 5.2 5.1
## [99] 5.1 5.0 5.0 4.9 4.9 4.7 4.7 4.6 4.6 4.5 4.5 4.4 4.3 4.3
## [113] 4.1 4.0 4.0 4.0 4.0 3.8 3.5 3.5 3.4 3.4 3.4 3.4 3.2 3.1
## [127] 3.1 3.1 3.0 2.9 2.9 2.9 2.7 2.6 2.6 2.5 2.5 2.4 2.4 2.4
## [141] 2.3 2.3 2.3 2.1 2.1 2.0 1.9 1.8 1.8 1.6 1.6 1.6 1.5 1.5
## [155] 1.5 1.5 1.4 1.4 1.4 1.4 1.3 1.3 1.3 1.3 1.2 1.2 1.2 1.2
## [169] 1.1 1.1 1.1 1.1 1.0 1.0 1.0 1.0 1.0 1.0 0.9 0.9 0.8 0.8
## [183] 0.7 0.7 0.5 0.5 0.5 0.5 0.4 0.0 0.0
Las variables pueden renombrarse utilizando la funcion names(). Pero esta funcion requiere que se cambien todos los nombres. El paquete rgrs nos ofrece una funcion para cambiar el nombre de una sola variablel
require(rgrs)
## Loading required package: rgrs
names(cancer) #notese que en la primera columna dice cervica, en lugar de cervical
## [1] "pais" "cervica" "colon.recto" "esofago" "higado"
## [6] "leucemia" "mama" "oral" "ovario" "pancreas"
## [11] "pulmon" "vejiga" "gdpcapita" "region"
cancer <- renomme.variable(cancer, "cervica", "cervical")
names(cancer)
## [1] "pais" "cervical" "colon.recto" "esofago" "higado"
## [6] "leucemia" "mama" "oral" "ovario" "pancreas"
## [11] "pulmon" "vejiga" "gdpcapita" "region"
Podemos acceder la tabla de datos,esto es indezar,
cancer[3, ] #información de toda la fila 3
## pais cervical colon.recto esofago higado leucemia mama oral ovario
## 3 algeria 3.4 8.5 0.5 1.3 2.9 16.9 3.5 1.7
## pancreas pulmon vejiga gdpcapita region
## 3 1.3 10.6 5 5.523 menaga
cancer[, 1] #ofrece toda la informacion de la columna 1
## [1] afghanistan albania algeria andorra
## [5] angola antigua and bar. arab emirates argentina
## [9] armenia australia austria azerbaijan
## [13] bahamas bahrain bangladesh barbados
## [17] belarus belgium belize benin
## [21] bhutan bolivia bosnia/herzeg botswana
## [25] brazil brunei bulgaria burkina faso
## [29] burundi cambodia cameroon canada
## [33] cape verde central africa chad chile
## [37] china colombia comoros congo
## [41] cook islands costa rica cote d ivoire croatia
## [45] cuba cyprus czech republic denmark
## [49] djibouti dominica dominican rep ecuador
## [53] egypt el salvador equ. guinea eritrea
## [57] estonia ethiopia fiji finland
## [61] france gabon gambia georgia
## [65] germany ghana greece grenada
## [69] guatemala guinea guinea-bissau guyana
## [73] haiti honduras hungary iceland
## [77] india indonesia iran iraq
## [81] ireland israel italy jamaica
## [85] japan jordan kazakhstan kenya
## [89] kiribati kuwait kyrgyzstan laos
## [93] latvia lebanon lesotho liberia
## [97] libya lithuania luxembourg madagascar
## [101] malawi malaysia maldives mali
## [105] malta marshall isl. mauritania mauritius
## [109] mexico micronesia moldova monaco
## [113] mongolia morocco mozambique myanmar
## [117] namibia nauru nepal netherlands
## [121] new guinea new zealand nicaragua niger
## [125] nigeria niue north korea norway
## [129] oman pakistan palau panama
## [133] paraguay peru philippines poland
## [137] portugal qatar rep of congo romania
## [141] russia rwanda saint lucia saint vincent
## [145] samoa san marino sao tome saudi arabia
## [149] senegal serbia/monten seychelles sierra leone
## [153] singapore slovakia slovenia solomon isl.
## [157] somalia south africa south korea spain
## [161] sri lanka st. kitts sudan suriname
## [165] swaziland sweden switzerland syria
## [169] tajikistan tanzania thailand timor-leste
## [173] togo tonga trinidad/tob. tunisia
## [177] turkey turkmenistan tuvalu uganda
## [181] ukraine united kingdom united states uruguay
## [185] uzbekistan vanuatu venezuela viet nam
## [189] yemen zambia zimbabwe
## 191 Levels: afghanistan albania algeria andorra angola ... zimbabwe
cancer[1, 2] #accedemos a la segunda variable del caso 1
## [1] 2.6
cancer[1:4, ] #ofrece informacion desde la fila 1 hasta la fila 4. Incluye todas las columnas
## pais cervical colon.recto esofago higado leucemia mama oral
## 1 afghanistan 2.6 6.5 9.7 3.8 5.3 14.2 2.0
## 2 albania 1.5 7.1 2.4 6.7 5.7 18.4 4.6
## 3 algeria 3.4 8.5 0.5 1.3 2.9 16.9 3.5
## 4 andorra 0.8 14.3 2.5 4.9 3.8 15.5 2.9
## ovario pancreas pulmon vejiga gdpcapita region
## 1 1.0 2.3 7.2 4.3 586 menaga
## 2 1.6 8.9 31.0 3.8 4.042 europe
## 3 1.7 1.3 10.6 5.0 5.523 menaga
## 4 1.9 4.6 21.6 4.2 41.517 europe
cancer[1:3, 1:2] #da informacion sobre las dos primeras columnas, tres primeros casos
## pais cervical
## 1 afghanistan 2.6
## 2 albania 1.5
## 3 algeria 3.4
Podemos ahora que hemos visto que hay en la tabla de datos, podemos operar a lo interno de la tabla:
disponibilidad$años[disponibilidad$año < 2000] # de la variable años, todos los que son menores a 2000
## [1] 1996 1997 1998 1999
disponibilidad$años[disponibilidad$año > 2000] # de la variable años, todos los que son mayores a 2000
## [1] 2001 2002 2003 2004 2005 2006
Para cambiar un valor dentro de un data.frame
disponibilidad$precios[3] <- 2420 #queremos cambiar el valor de la tercera celda de la columna precio
Mediana, na.rm suprime la contabilizacion de los valores faltantes, con variables numericas se ingresa na.omit:
median(table(as$partido), na.rm = T)
podemos obtener informacion rapida sobre la distribucion de los niveles o factores de una variable mediante la funcion table()
table(cancer$region)
##
## aao asia ca caribbean europe menaga na
## 16 27 7 14 44 23 2
## sa ssa
## 12 46
Para cambiar los nombres de los factores existentes en una variable dada usamos:
cancer$region<-factor(cancer$region, levels=c("A", "B"", "C"", "D"", "E""))
No hay comentarios.:
Publicar un comentario