10 2. El software R factores. Como ejemplo, tomemos el factor provf <strong>de</strong>finido anteriorm<strong>en</strong>te, <strong>en</strong> el que hemos agrupado unos individuos según su provincia <strong>de</strong> proce<strong>de</strong>ncia. Tomemos ahora un vector con el número <strong>de</strong> hijos <strong>de</strong> cada individuo, digamos hijos
2.4 Procedimi<strong>en</strong>tos gráficos 11 lista/data.frame. Para volver a la situación anterior se usa el comando <strong>de</strong>ttach(Lst). En su mom<strong>en</strong>to dijimos que el comando search() permitía ver el número <strong>de</strong> librerías cargadas <strong>en</strong> el espacio <strong>de</strong> trabajo, <strong>de</strong>l mismo modo permite ver los objetos a los que se ha “subido un nivel” con attach. Dado un objeto se pue<strong>de</strong> consultar su tipo, su clase (numérico, carácter, lista, matriz...) a través <strong>de</strong> las funciones mo<strong>de</strong>, class o bi<strong>en</strong> typeof ; si bi<strong>en</strong> son muy parecidas, no son equival<strong>en</strong>tes; <strong>de</strong>p<strong>en</strong>di<strong>en</strong>do <strong>de</strong> la situación pue<strong>de</strong> interesar más usar una que otra. La clase <strong>de</strong> un objeto es algo más específico que su modo, si un objeto no ti<strong>en</strong>e clase, class() nos <strong>de</strong>volverá lo mismo que mo<strong>de</strong>(). A<strong>de</strong>más, también existe la función attributes, que nos proporciona características <strong>de</strong> un objeto tales como dim<strong>en</strong>sión, clase, nombres <strong>de</strong> columnas. . . Dado un objeto <strong>de</strong> un cierto tipo, es posible forzarlo a otro distinto (siempre que esto t<strong>en</strong>ga s<strong>en</strong>tido para el objeto <strong>en</strong> cuestión). Esto es posible mediante la familia <strong>de</strong> funciones as.objeto(). Por ejemplo dado un data.frame, Data, la función as.matrix(Data) lo convierte <strong>en</strong> una matriz si esto es posible. Un uso in<strong>de</strong>bido <strong>de</strong> estas imposiciones <strong>de</strong> tipo pue<strong>de</strong> llevar a resultados no <strong>de</strong>seados (el que no haya habido m<strong>en</strong>saje <strong>de</strong> error no quiere <strong>de</strong>cir que la conversión se haya hecho como nosotros queríamos). Para realizar operaciones numéricas con data.frames o listas, lo más conv<strong>en</strong>i<strong>en</strong>te es convertir a matriz, array o vector la parte con la que se <strong>de</strong>sea operar y <strong>de</strong>spués hacer las operaciones. En su mom<strong>en</strong>to vimos como <strong>de</strong>finir un vector a través <strong>de</strong> la función c(), es importante t<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta que esta función se pue<strong>de</strong> utilizar para concat<strong>en</strong>ar cualquier tipo <strong>de</strong> objetos, no sólo variables numéricas, <strong>en</strong>teras. ..De la misma familia son las funciones cbind y rbind que permit<strong>en</strong> combinar una serie <strong>de</strong> objetos bi<strong>en</strong> por columnas o por filas. Habitualm<strong>en</strong>te se usan para construir una matrices a partir <strong>de</strong> vectores. 2.4. Procedimi<strong>en</strong>tos gráficos El l<strong>en</strong>guaje R dispone <strong>de</strong> varias funciones preparadas para la repres<strong>en</strong>tación gráfica <strong>de</strong> datos. Estas funciones se divi<strong>de</strong>n <strong>en</strong> dos gran<strong>de</strong>s grupos: Gráficos <strong>de</strong> alto nivel: Crean un nuevo gráfico <strong>en</strong> la v<strong>en</strong>tana <strong>de</strong> gráficos. Gráficos <strong>de</strong> bajo nivel: Permit<strong>en</strong> añadir líneas, puntos, etiquetas... a un gráfico ya exist<strong>en</strong>te. Gráficos <strong>de</strong> alto nivel De <strong>en</strong>tre todos los gráficos <strong>de</strong> este tipo <strong>de</strong>staca la función plot, que ti<strong>en</strong>e muchas variantes y <strong>de</strong>p<strong>en</strong>di<strong>en</strong>do <strong>de</strong>l tipo <strong>de</strong> datos que se le pas<strong>en</strong> como argum<strong>en</strong>to actuará <strong>de</strong> modos distintos. Lo más común es plot(x,y) para repres<strong>en</strong>tar un diagrama <strong>de</strong> puntos <strong>de</strong> y fr<strong>en</strong>te a x. Otras funciones <strong>de</strong> alto nivel importantes son, por ejemplo, hist para dibujar histogramas, o persp para repres<strong>en</strong>taciones tridim<strong>en</strong>sionales (superficies). Parámetros más importantes comunes a la mayoría <strong>de</strong> gráficos <strong>de</strong> alto nivel: