Mostrando entradas con la etiqueta headTail. Mostrar todas las entradas
Mostrando entradas con la etiqueta headTail. Mostrar todas las entradas

2020-03-07

Show the first and last n lines of a data frame in R

Problem

We want to show the first and last n lines of a data frame. The equivalent of using the head and tail functions at the same time.

Solution

We can use the function headTail from the psych package.

  1. Defatult options
  2. By default headTail returns the top 4 and bottom 4 lines separated with dots (ellipsis).

    library(psych)
    headTail(ToothGrowth)
    
         len supp dose
    1    4.2   VC  0.5
    2   11.5   VC  0.5
    3    7.3   VC  0.5
    4    5.8   VC  0.5
    ...  ...   ...
    57  26.4   OJ    2
    58  27.3   OJ    2
    59  29.4   OJ    2
    60    23   OJ    2
    
  3. Arguments
  4. We can control tne number of lines to show at the top and the bottom, the ellipsis (how top and bottom are separared), number of columns to show and round the number of digits. Some examples:

    # The first and last 2 lines without separation
    headTail(ToothGrowth, top = 2, bottom = 2, ellipsis = FALSE)
    
        len supp dose
    1   4.2   VC  0.5
    2  11.5   VC  0.5
    59 29.4   OJ  2.0
    60 23.0   OJ  2.0
    
    # The first and last 3, from column 4 to 5 with no decimals.
    headTail(iris, top = 3, bottom = 3, digits = 0 , from = 4, to = 5)
    
       Petal.Width   Species
    1             0    setosa
    2             0    setosa
    3             0    setosa
    ...         ...      
    148           2 virginica
    149           2 virginica
    150           2 virginica
    

Related posts

References

2018-12-27

Obtener datos geoespaciales por países con R: elevación

Problema

En la entrada anterior obtuvimos las divisiones administrativas con el paquete raster en R. En esta ocasión extraeremos datos de altitud o elevación del terreno.

Solución

Empleamos la función getData del paquete raster. Necesitamos suministrar el argumento country con un código ISO de 3 letras.

library(raster)
# Países disponibles
library(psych) # Función HeadTail 
headTail(getData('ISO3'))
    ISO3                  NAME
1    AFG           Afghanistan
2    XAD Akrotiri and Dhekelia
3    ALA                 Åland
4    ALB               Albania
...                   
253  ESH        Western Sahara
254  YEM                 Yemen
255  ZMB                Zambia
256  ZWE              Zimbabwe
Suministramos el argumento 'alt' (altitude). Computamos slope y aspect con la función terrain para poder suministrarlos posteriormente a la función hillShade.

alt <-  getData('alt', country = 'ESP')
slope <-  terrain(alt, opt = 'slope')
aspect <-  terrain(alt, opt = 'aspect')
hill <-  hillShade(slope, aspect, 40, 270)

library(tmap)
tm_shape(hill) +
  tm_raster(palette = gray(0:100 / 100),
            n = 100,
            legend.show = FALSE)  +
  tm_shape(alt) +
  tm_raster(alpha = 0.5,
            palette = terrain.colors(25),
            legend.show = FALSE)

Mapa

Entradas relacionadas

Referencias

2018-12-25

Obtener datos geoespaciales por países con R: divisiones administrativas

Problema

Deseamos obtener datos espaciales de las áreas administrativas de un país con el paquete raster de R. Con estos datos, SpatialPolygonDataFrame (polígonos espaciales en un data frame), podremos dibujar mapas en R.

Solución

Empleamos la función getData del paquete raster. Necesitamos suministrar el argumento country con un código ISO de 3 letras.

library(raster)
# Países disponibles
library(psych) # Función HeadTail 
headTail(getData('ISO3'))
    ISO3                  NAME
1    AFG           Afghanistan
2    XAD Akrotiri and Dhekelia
3    ALA                 Åland
4    ALB               Albania
...                   
253  ESH        Western Sahara
254  YEM                 Yemen
255  ZMB                Zambia
256  ZWE              Zimbabwe
El primer argumento es 'GADM' que es una base de datos de divisiones administrativas. También necesitamos especificar el nivel de la subdivisión administrativa (0 = país, 1 = primer nivel). Por ejemplo, para España: 0 = país, 1 = comunidades autónomas, 2 = provincias, 3 = comarcas, 4 = municipios.

# Descargamos el nivel 4
df4 <- getData("GADM", country = "ES", level = 4)
View(df4)
Vista de la pestaña Environment tras importar todos los niveles.

Mapas

Representamos las divisiones administrarivas del nivel 1. Separamos península y Baleares de Canarias para apreciar mejor los mapas.

df11 <- df1[df1@data$NAME_1 != "Islas Canarias",]
df12 <- df1[df1@data$NAME_1 == "Islas Canarias",]
plot(df11, main = "Península y Baleares - Divisiones administrativas nivel 1")
plot(df12, main = "Canarias- Divisiones administrativas nivel 1")

Descarga manual

Tammbién podemos acceder y descargar manualmente los ficheros de los diferentes niveles aquí.

Entradas relacionadas

Referencias

2018-03-31

Mostrar las primeras y últimas n filas de un data frame en R

Problema

Deseamos mostrar simultáneamente las primeras n y últimas n filas de una matriz o data frame. Es decir, combinar las funciones head y tail.

Solución

La función headTail del paquete psych nos permite visualizar simultáneamente las n primeras filas (head) y las últimas n filas (tail).

  1. Opciones por defecto
  2. Por defecto headTail muestra las 4 primeras y últimas filas del objeto separadas por puntos.

    library(psych)
    headTail(ToothGrowth)
    
         len supp dose
    1    4.2   VC  0.5
    2   11.5   VC  0.5
    3    7.3   VC  0.5
    4    5.8   VC  0.5
    ...  ...   ...
    57  26.4   OJ    2
    58  27.3   OJ    2
    59  29.4   OJ    2
    60    23   OJ    2
    
  3. Más opciones
  4. La función headTail nos permite controlar el número de filas de la parte superior e inferior, la separación entre ambas, las columnas a mostrar y redondear el número dígitos. Veamos algunos ejemplos:

    #Primeras y últimas dos filas sin separación
    headTail(ToothGrowth, top = 2, bottom = 2, ellipsis = FALSE)
    
        len supp dose
    1   4.2   VC  0.5
    2  11.5   VC  0.5
    59 29.4   OJ  2.0
    60 23.0   OJ  2.0
    
    #Primeras y últimas tres filas, las columnas 4 y 5, con separación y sin decimales.
    headTail(iris, top = 3, bottom = 3, digits = 0 , from = 4, to = 5)
    
       Petal.Width   Species
    1             0    setosa
    2             0    setosa
    3             0    setosa
    ...         ...      
    148           2 virginica
    149           2 virginica
    150           2 virginica
    

Entradas relacionadas

Nube de datos