R que R

Data Wrangling: Cómo formatear números en R

Thu, Oct 24, 2019
R Data Wrangling
#números #numbers #format


Dataset


Los ejercicios realizados a lo largo de este post, que nos servirán para mostrar la aplicación de las funciones que queremos exponer, se harán sobre el dataset del Valor Agregado Bruto de las Comunidades Autónomas Españolas por sectores productivos utilizado en este post anterior. Utilizaremos, por ejemplo, los datos relativos al año 1980, que multiplicaremos por 1000 para tener el valor completo (nótese que el VAB está expresado en valores constantes y en miles de euros)



library(readxl)
library(tidyverse)
library(stringr)

# cargamos el archivo excel

ce_vab <- read_excel("C:/Users/Usuario/Desktop/r_que_r/r_que_r/content/datasets/cambioestructural.xlsx", 
    sheet = "vab")

head(ce_vab)
## # A tibble: 6 x 38
##   Region CCAA  Sector Nombre Actividad Ramas `1980` `1981` `1982` `1983` `1984`
##   <chr>  <chr> <chr>  <chr>  <chr>     <chr>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 AND    Anda~ Agric~ AGR    Agro      Agri~ 2.78e6 2.67e6 2.51e6 2.51e6 2.83e6
## 2 ARA    Arag~ Agric~ AGR    Agro      Agri~ 9.41e5 5.58e5 6.58e5 7.03e5 9.41e5
## 3 AST    Astu~ Agric~ AGR    Agro      Agri~ 3.97e5 4.08e5 4.15e5 4.13e5 3.92e5
## 4 BAL    Bale~ Agric~ AGR    Agro      Agri~ 2.20e5 1.85e5 1.75e5 1.83e5 1.80e5
## 5 CAN    Cana~ Agric~ AGR    Agro      Agri~ 6.47e5 6.69e5 5.94e5 5.99e5 6.56e5
## 6 CANT   Cant~ Agric~ AGR    Agro      Agri~ 2.68e5 2.86e5 2.60e5 2.76e5 2.79e5
## # ... with 27 more variables: `1985` <dbl>, `1986` <dbl>, `1987` <dbl>,
## #   `1988` <dbl>, `1989` <dbl>, `1990` <dbl>, `1991` <dbl>, `1992` <dbl>,
## #   `1993` <dbl>, `1994` <dbl>, `1995` <dbl>, `1996` <dbl>, `1997` <dbl>,
## #   `1998` <dbl>, `1999` <dbl>, `2000` <dbl>, `2001` <dbl>, `2002` <dbl>,
## #   `2003` <dbl>, `2004` <dbl>, `2005` <dbl>, `2006` <dbl>, `2007` <dbl>,
## #   `2008` <dbl>, `2009` <dbl>, `2010` <dbl>, `2011` <dbl>

# seleccionamos las columnas: CCAA, Sector y 1980. Multip

year_1980 <- ce_vab %>%
  mutate(vab_1980 = `1980` * 1000) %>%
  select(CCAA, Sector, vab_1980) 

head(year_1980) 
## # A tibble: 6 x 3
##   CCAA      Sector        vab_1980
##   <chr>     <chr>            <dbl>
## 1 Andalucía Agricultura 2776590000
## 2 Aragón    Agricultura  941490000
## 3 Asturias  Agricultura  397052000
## 4 Baleares  Agricultura  220089000
## 5 Canarias  Agricultura  646876000
## 6 Cantabria Agricultura  268312000

 

función format()


La función format() nos permite modificar los números en el formato que consideremos más conveniente y adecuado en nuestro análisis. Ante un número de considerable magnitud puede interesarnos anotar la cantidad en forma científica. Podemos configurar el formato científico de la siguiente forma:



a <- format(year_1980$vab_1980, digits = 2)

head(a)
## [1] "2.8e+09" "9.4e+08" "4.0e+08" "2.2e+08" "6.5e+08" "2.7e+08"

a2 <- format(year_1980$vab_1980, digits = 4)

head(a2)
## [1] "2.777e+09" "9.415e+08" "3.971e+08" "2.201e+08" "6.469e+08" "2.683e+08"

b <- format(year_1980$vab_1980, scientific = F)

head(b)
## [1] " 2776590000" "  941490000" "  397052000" "  220089000" "  646876000"
## [6] "  268312000"


Puede que nos sea útil utilizar separadores de miles en los números que estemos utilizando. En este caso tenemos varias opciones que podemos utilizar:



# Separador mediante un espacio en blanco:

year_1980$vab_1980_espacio <- format(year_1980$vab_1980, big.mark = " ")

year_1980 %>%
  select(CCAA, Sector, vab_1980_espacio)
## # A tibble: 255 x 3
##    CCAA               Sector      vab_1980_espacio
##    <chr>              <chr>       <chr>           
##  1 Andalucía          Agricultura " 2 776 590 000"
##  2 Aragón             Agricultura "   941 490 000"
##  3 Asturias           Agricultura "   397 052 000"
##  4 Baleares           Agricultura "   220 089 000"
##  5 Canarias           Agricultura "   646 876 000"
##  6 Cantabria          Agricultura "   268 312 000"
##  7 Castilla y León    Agricultura " 1 669 747 000"
##  8 Castilla la Mancha Agricultura " 1 516 187 000"
##  9 Cataluña           Agricultura " 1 861 573 000"
## 10 Valencia           Agricultura " 1 454 922 000"
## # ... with 245 more rows


# Separador mediante uso de comas:

year_1980$vab_1980_comas <- format(year_1980$vab_1980, big.mark = ",")

year_1980 %>%
  select(CCAA, Sector, vab_1980_comas)
## # A tibble: 255 x 3
##    CCAA               Sector      vab_1980_comas  
##    <chr>              <chr>       <chr>           
##  1 Andalucía          Agricultura " 2,776,590,000"
##  2 Aragón             Agricultura "   941,490,000"
##  3 Asturias           Agricultura "   397,052,000"
##  4 Baleares           Agricultura "   220,089,000"
##  5 Canarias           Agricultura "   646,876,000"
##  6 Cantabria          Agricultura "   268,312,000"
##  7 Castilla y León    Agricultura " 1,669,747,000"
##  8 Castilla la Mancha Agricultura " 1,516,187,000"
##  9 Cataluña           Agricultura " 1,861,573,000"
## 10 Valencia           Agricultura " 1,454,922,000"
## # ... with 245 more rows


# Separador mediante uso de puntos:

year_1980$vab_1980_puntos <- format(year_1980$vab_1980, big.mark = ".")
## Warning in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
## 'big.mark' and 'decimal.mark' are both '.', which could be confusing

year_1980 %>%
  select(CCAA, Sector, vab_1980_puntos)
## # A tibble: 255 x 3
##    CCAA               Sector      vab_1980_puntos 
##    <chr>              <chr>       <chr>           
##  1 Andalucía          Agricultura " 2.776.590.000"
##  2 Aragón             Agricultura "   941.490.000"
##  3 Asturias           Agricultura "   397.052.000"
##  4 Baleares           Agricultura "   220.089.000"
##  5 Canarias           Agricultura "   646.876.000"
##  6 Cantabria          Agricultura "   268.312.000"
##  7 Castilla y León    Agricultura " 1.669.747.000"
##  8 Castilla la Mancha Agricultura " 1.516.187.000"
##  9 Cataluña           Agricultura " 1.861.573.000"
## 10 Valencia           Agricultura " 1.454.922.000"
## # ... with 245 more rows


Podemos también ordenar los valores numéricos y alinearlos a la derecha (default) o a la izquierda con la función trim = TRUE.



Andalucia_1980 <- ce_vab %>%
  filter( CCAA == "Andalucía") %>%
  mutate(vab_1980 = `1980` * 1000) %>%
  select(CCAA, Nombre, vab_1980) 

head(Andalucia_1980, n = 15)
## # A tibble: 15 x 3
##    CCAA      Nombre       vab_1980
##    <chr>     <chr>           <dbl>
##  1 Andalucía AGR        2776590000
##  2 Andalucía IND_ALIM   2418657000
##  3 Andalucía IND_TEXT    591322000
##  4 Andalucía IND_MAD     561817000
##  5 Andalucía IND_COQ    1172748000
##  6 Andalucía IND_PLAS   1526154000
##  7 Andalucía IND_INF     331774000
##  8 Andalucía IND_TRANS   449915000
##  9 Andalucía IND_MUE     496089000
## 10 Andalucía IND_REST   3146472000
## 11 Andalucía CON        7226562000
## 12 Andalucía COM       11605641000
## 13 Andalucía TYC        4010545000
## 14 Andalucía IN_FIN     1959274000
## 15 Andalucía OS        21430188000


Andalucia_1980$vab_1980 <- format(Andalucia_1980$vab_1980, big.mark= ".", trim = TRUE)
## Warning in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
## 'big.mark' and 'decimal.mark' are both '.', which could be confusing
head(Andalucia_1980, n = 15)
## # A tibble: 15 x 3
##    CCAA      Nombre    vab_1980      
##    <chr>     <chr>     <chr>         
##  1 Andalucía AGR       2.776.590.000 
##  2 Andalucía IND_ALIM  2.418.657.000 
##  3 Andalucía IND_TEXT  591.322.000   
##  4 Andalucía IND_MAD   561.817.000   
##  5 Andalucía IND_COQ   1.172.748.000 
##  6 Andalucía IND_PLAS  1.526.154.000 
##  7 Andalucía IND_INF   331.774.000   
##  8 Andalucía IND_TRANS 449.915.000   
##  9 Andalucía IND_MUE   496.089.000   
## 10 Andalucía IND_REST  3.146.472.000 
## 11 Andalucía CON       7.226.562.000 
## 12 Andalucía COM       11.605.641.000
## 13 Andalucía TYC       4.010.545.000 
## 14 Andalucía IN_FIN    1.959.274.000 
## 15 Andalucía OS        21.430.188.000

Andalucia_1980$vab_1980 <- format(Andalucia_1980$vab_1980, big.mark= ".", justify= "left")
head(Andalucia_1980, n = 15)
## # A tibble: 15 x 3
##    CCAA      Nombre    vab_1980        
##    <chr>     <chr>     <chr>           
##  1 Andalucía AGR       "2.776.590.000 "
##  2 Andalucía IND_ALIM  "2.418.657.000 "
##  3 Andalucía IND_TEXT  "591.322.000   "
##  4 Andalucía IND_MAD   "561.817.000   "
##  5 Andalucía IND_COQ   "1.172.748.000 "
##  6 Andalucía IND_PLAS  "1.526.154.000 "
##  7 Andalucía IND_INF   "331.774.000   "
##  8 Andalucía IND_TRANS "449.915.000   "
##  9 Andalucía IND_MUE   "496.089.000   "
## 10 Andalucía IND_REST  "3.146.472.000 "
## 11 Andalucía CON       "7.226.562.000 "
## 12 Andalucía COM       "11.605.641.000"
## 13 Andalucía TYC       "4.010.545.000 "
## 14 Andalucía IN_FIN    "1.959.274.000 "
## 15 Andalucía OS        "21.430.188.000"


Existen otras formas que nos pueden servir para ordenar y presentar de forma conveniente nuestros datos. Por ejemplo, combinando la función writeLines() y la función paste() podemos organizar/alinear los datos de nuestras columnas de la siguiente forma:



sectores <- format(Andalucia_1980$Nombre, justify = "right")
sectores
##  [1] "      AGR" " IND_ALIM" " IND_TEXT" "  IND_MAD" "  IND_COQ" " IND_PLAS"
##  [7] "  IND_INF" "IND_TRANS" "  IND_MUE" " IND_REST" "      CON" "      COM"
## [13] "      TYC" "   IN_FIN" "       OS"

valores_vab_1980 <- format(Andalucia_1980$vab_1980, big.mark= ".")
valores_vab_1980
##  [1] "2.776.590.000 " "2.418.657.000 " "591.322.000   " "561.817.000   "
##  [5] "1.172.748.000 " "1.526.154.000 " "331.774.000   " "449.915.000   "
##  [9] "496.089.000   " "3.146.472.000 " "7.226.562.000 " "11.605.641.000"
## [13] "4.010.545.000 " "1.959.274.000 " "21.430.188.000"

writeLines(sectores)
##       AGR
##  IND_ALIM
##  IND_TEXT
##   IND_MAD
##   IND_COQ
##  IND_PLAS
##   IND_INF
## IND_TRANS
##   IND_MUE
##  IND_REST
##       CON
##       COM
##       TYC
##    IN_FIN
##        OS
writeLines(valores_vab_1980)
## 2.776.590.000 
## 2.418.657.000 
## 591.322.000   
## 561.817.000   
## 1.172.748.000 
## 1.526.154.000 
## 331.774.000   
## 449.915.000   
## 496.089.000   
## 3.146.472.000 
## 7.226.562.000 
## 11.605.641.000
## 4.010.545.000 
## 1.959.274.000 
## 21.430.188.000

columnas <- paste(sectores, valores_vab_1980, sep = " ")
writeLines(columnas)
##       AGR 2.776.590.000 
##  IND_ALIM 2.418.657.000 
##  IND_TEXT 591.322.000   
##   IND_MAD 561.817.000   
##   IND_COQ 1.172.748.000 
##  IND_PLAS 1.526.154.000 
##   IND_INF 331.774.000   
## IND_TRANS 449.915.000   
##   IND_MUE 496.089.000   
##  IND_REST 3.146.472.000 
##       CON 7.226.562.000 
##       COM 11.605.641.000
##       TYC 4.010.545.000 
##    IN_FIN 1.959.274.000 
##        OS 21.430.188.000


función formatC()


Otra forma de formatear los datos es con la función formatC(). Para examinar su utilidad creamos un nuevo dataset, esta vez con los datos del VAB de 2011.



year_2011 <-  ce_vab %>%
  mutate(vab_2011 = `2011` * 1000) %>%
  select(CCAA, Nombre, vab_2011)
  
head(year_2011)
## # A tibble: 6 x 3
##   CCAA      Nombre   vab_2011
##   <chr>     <chr>       <dbl>
## 1 Andalucía AGR    6766581000
## 2 Aragón    AGR    1427819000
## 3 Asturias  AGR     413867000
## 4 Baleares  AGR     225131000
## 5 Canarias  AGR     412177000
## 6 Cantabria AGR     269603000


En primer lugar podemos establecer el formato fixed mediante el comando format = "f". En



# El formato fixed lo establecemos de la siguiente forma:

year_2011$vab_2011_fixed <- formatC(year_2011$vab_2011, format= "f")

year_2011 %>%
  select(CCAA, Nombre, vab_2011_fixed)
## # A tibble: 255 x 3
##    CCAA               Nombre vab_2011_fixed 
##    <chr>              <chr>  <chr>          
##  1 Andalucía          AGR    6766581000.0000
##  2 Aragón             AGR    1427819000.0000
##  3 Asturias           AGR    413867000.0000 
##  4 Baleares           AGR    225131000.0000 
##  5 Canarias           AGR    412177000.0000 
##  6 Cantabria          AGR    269603000.0000 
##  7 Castilla y León    AGR    3633373000.0000
##  8 Castilla la Mancha AGR    2245401000.0000
##  9 Cataluña           AGR    2313743000.0000
## 10 Valencia           AGR    1849193000.0000
## # ... with 245 more rows


# Añadimos solo un dígito con digits = 1 (podemos añadir más digitos según conveniencia)

year_2011$vab_2011_fixed_b <- formatC(year_2011$vab_2011, format= "f",digits= 1)

year_2011 %>%
  select(CCAA, Nombre, vab_2011_fixed_b)
## # A tibble: 255 x 3
##    CCAA               Nombre vab_2011_fixed_b
##    <chr>              <chr>  <chr>           
##  1 Andalucía          AGR    6766581000.0    
##  2 Aragón             AGR    1427819000.0    
##  3 Asturias           AGR    413867000.0     
##  4 Baleares           AGR    225131000.0     
##  5 Canarias           AGR    412177000.0     
##  6 Cantabria          AGR    269603000.0     
##  7 Castilla y León    AGR    3633373000.0    
##  8 Castilla la Mancha AGR    2245401000.0    
##  9 Cataluña           AGR    2313743000.0    
## 10 Valencia           AGR    1849193000.0    
## # ... with 245 more rows


# Al igual que hemos hecho previamente podemos separar los miles 

year_2011$vab_2011_fixed_c <- formatC(year_2011$vab_2011, format= "f",digits= 1, big.mark = ".") 

year_2011 %>%
  select(CCAA, Nombre, vab_2011_fixed_c)
## # A tibble: 255 x 3
##    CCAA               Nombre vab_2011_fixed_c
##    <chr>              <chr>  <chr>           
##  1 Andalucía          AGR    6.766.581.000.0 
##  2 Aragón             AGR    1.427.819.000.0 
##  3 Asturias           AGR    413.867.000.0   
##  4 Baleares           AGR    225.131.000.0   
##  5 Canarias           AGR    412.177.000.0   
##  6 Cantabria          AGR    269.603.000.0   
##  7 Castilla y León    AGR    3.633.373.000.0 
##  8 Castilla la Mancha AGR    2.245.401.000.0 
##  9 Cataluña           AGR    2.313.743.000.0 
## 10 Valencia           AGR    1.849.193.000.0 
## # ... with 245 more rows


Con la función formatC() establecemos el formato científico con el comando `format= “e” de la siguiente forma:



year_2011$vab_2011_e <- formatC(year_2011$vab_2011, digits = 1, format= "e")

year_2011 %>%
  select(CCAA, Nombre, vab_2011_e)
## # A tibble: 255 x 3
##    CCAA               Nombre vab_2011_e
##    <chr>              <chr>  <chr>     
##  1 Andalucía          AGR    6.8e+09   
##  2 Aragón             AGR    1.4e+09   
##  3 Asturias           AGR    4.1e+08   
##  4 Baleares           AGR    2.3e+08   
##  5 Canarias           AGR    4.1e+08   
##  6 Cantabria          AGR    2.7e+08   
##  7 Castilla y León    AGR    3.6e+09   
##  8 Castilla la Mancha AGR    2.2e+09   
##  9 Cataluña           AGR    2.3e+09   
## 10 Valencia           AGR    1.8e+09   
## # ... with 245 more rows

year_2011$vab_2011_e_b <- formatC(year_2011$vab_2011, digits = 3, format= "e")

year_2011 %>%
  select(CCAA, Nombre, vab_2011_e_b)
## # A tibble: 255 x 3
##    CCAA               Nombre vab_2011_e_b
##    <chr>              <chr>  <chr>       
##  1 Andalucía          AGR    6.767e+09   
##  2 Aragón             AGR    1.428e+09   
##  3 Asturias           AGR    4.139e+08   
##  4 Baleares           AGR    2.251e+08   
##  5 Canarias           AGR    4.122e+08   
##  6 Cantabria          AGR    2.696e+08   
##  7 Castilla y León    AGR    3.633e+09   
##  8 Castilla la Mancha AGR    2.245e+09   
##  9 Cataluña           AGR    2.314e+09   
## 10 Valencia           AGR    1.849e+09   
## # ... with 245 more rows


Por último, el formato “g” que se obtiene al especificar format = "g" utiliza el formato fixed o el formato científico dependiendo de cuál de ellos ocupa menos espacio.



year_2011$vab_2011_g <- formatC(year_2011$vab_2011, digits = 1, format= "g")

year_2011 %>%
  select(CCAA, Nombre, vab_2011_g)
## # A tibble: 255 x 3
##    CCAA               Nombre vab_2011_g
##    <chr>              <chr>  <chr>     
##  1 Andalucía          AGR    7e+09     
##  2 Aragón             AGR    1e+09     
##  3 Asturias           AGR    4e+08     
##  4 Baleares           AGR    2e+08     
##  5 Canarias           AGR    4e+08     
##  6 Cantabria          AGR    3e+08     
##  7 Castilla y León    AGR    4e+09     
##  8 Castilla la Mancha AGR    2e+09     
##  9 Cataluña           AGR    2e+09     
## 10 Valencia           AGR    2e+09     
## # ... with 245 more rows

year_2011$vab_2011_g_b <- formatC(year_2011$vab_2011, digits = 9, format= "g")

year_2011 %>%
  select(CCAA, Nombre, vab_2011_g_b)
## # A tibble: 255 x 3
##    CCAA               Nombre vab_2011_g_b  
##    <chr>              <chr>  <chr>         
##  1 Andalucía          AGR    "6.766581e+09"
##  2 Aragón             AGR    "1.427819e+09"
##  3 Asturias           AGR    " 413867000"  
##  4 Baleares           AGR    " 225131000"  
##  5 Canarias           AGR    " 412177000"  
##  6 Cantabria          AGR    " 269603000"  
##  7 Castilla y León    AGR    "3.633373e+09"
##  8 Castilla la Mancha AGR    "2.245401e+09"
##  9 Cataluña           AGR    "2.313743e+09"
## 10 Valencia           AGR    "1.849193e+09"
## # ... with 245 more rows


Cómo incluir elementos como % o +/-


En primer lugar vamos a seleccionar únicamente los datos del sector “Otros Servicios (OS)”, calculamos el total del VAB de este sector en el país y calculamos el porcentaje que corresponde a cada una de las Comunidades Autónomas.



porcentaje_2011 <- ce_vab %>%
  filter( Nombre == "OS") %>%
  mutate(suma = sum(`2011`) ) %>%
  mutate(porcentaje = `2011` / sum(`2011`)) %>%
  select(CCAA, Nombre, `2011`, suma, porcentaje)

#paste("$", year_1980$vab_1980_f, sep = " ")


Para indicar el porcentaje que corresponde a cada Comunidad Autónoma puede resultarnos conveniente, según el momento o preferencias, hacerlo a través de alguna de las siguientes formas:



# 1. Indicamos el resultado de la división entre el VAB regional y el VAB total en Otros Servicios. 

porcentaje_2011$porcentaje <- formatC(porcentaje_2011$porcentaje, format = "f", digits=4)
head(porcentaje_2011, n=20)
## # A tibble: 17 x 5
##    CCAA               Nombre   `2011`      suma porcentaje
##    <chr>              <chr>     <dbl>     <dbl> <chr>     
##  1 Andalucía          OS     56020551 355444209 0.1576    
##  2 Aragón             OS     10365710 355444209 0.0292    
##  3 Asturias           OS      7496718 355444209 0.0211    
##  4 Baleares           OS      8975587 355444209 0.0253    
##  5 Canarias           OS     15303694 355444209 0.0431    
##  6 Cantabria          OS      4413472 355444209 0.0124    
##  7 Castilla y León    OS     18321755 355444209 0.0515    
##  8 Castilla la Mancha OS     11574356 355444209 0.0326    
##  9 Cataluña           OS     61317424 355444209 0.1725    
## 10 Valencia           OS     33594542 355444209 0.0945    
## 11 Extremadura        OS      6517225 355444209 0.0183    
## 12 Galicia            OS     17919874 355444209 0.0504    
## 13 Madrid             OS     66694357 355444209 0.1876    
## 14 Murcia             OS      9584324 355444209 0.0270    
## 15 Navarra            OS      5343182 355444209 0.0150    
## 16 País Vasco         OS     19696497 355444209 0.0554    
## 17 Rioja              OS      2304941 355444209 0.0065



# 2. Multiplicamos la columna obtenida en el punto #1 por 100:

porcentaje_2011 <- porcentaje_2011 %>%
  mutate(porcentaje_b = as.numeric(porcentaje) * 100) 
head(porcentaje_2011, n=20)
## # A tibble: 17 x 6
##    CCAA               Nombre   `2011`      suma porcentaje porcentaje_b
##    <chr>              <chr>     <dbl>     <dbl> <chr>             <dbl>
##  1 Andalucía          OS     56020551 355444209 0.1576            15.8 
##  2 Aragón             OS     10365710 355444209 0.0292             2.92
##  3 Asturias           OS      7496718 355444209 0.0211             2.11
##  4 Baleares           OS      8975587 355444209 0.0253             2.53
##  5 Canarias           OS     15303694 355444209 0.0431             4.31
##  6 Cantabria          OS      4413472 355444209 0.0124             1.24
##  7 Castilla y León    OS     18321755 355444209 0.0515             5.15
##  8 Castilla la Mancha OS     11574356 355444209 0.0326             3.26
##  9 Cataluña           OS     61317424 355444209 0.1725            17.2 
## 10 Valencia           OS     33594542 355444209 0.0945             9.45
## 11 Extremadura        OS      6517225 355444209 0.0183             1.83
## 12 Galicia            OS     17919874 355444209 0.0504             5.04
## 13 Madrid             OS     66694357 355444209 0.1876            18.8 
## 14 Murcia             OS      9584324 355444209 0.0270             2.7 
## 15 Navarra            OS      5343182 355444209 0.0150             1.5 
## 16 País Vasco         OS     19696497 355444209 0.0554             5.54
## 17 Rioja              OS      2304941 355444209 0.0065             0.65


# 3. Añadimos el signo % sobre el valor obtenido en el punto #2:

porcentaje_2011$porcentaje_c <- paste(porcentaje_2011$porcentaje_b, "%", sep = "")
porcentaje_2011 %>%
select(CCAA, Nombre, porcentaje, porcentaje_b, porcentaje_c)
## # A tibble: 17 x 5
##    CCAA               Nombre porcentaje porcentaje_b porcentaje_c
##    <chr>              <chr>  <chr>             <dbl> <chr>       
##  1 Andalucía          OS     0.1576            15.8  15.76%      
##  2 Aragón             OS     0.0292             2.92 2.92%       
##  3 Asturias           OS     0.0211             2.11 2.11%       
##  4 Baleares           OS     0.0253             2.53 2.53%       
##  5 Canarias           OS     0.0431             4.31 4.31%       
##  6 Cantabria          OS     0.0124             1.24 1.24%       
##  7 Castilla y León    OS     0.0515             5.15 5.15%       
##  8 Castilla la Mancha OS     0.0326             3.26 3.26%       
##  9 Cataluña           OS     0.1725            17.2  17.25%      
## 10 Valencia           OS     0.0945             9.45 9.45%       
## 11 Extremadura        OS     0.0183             1.83 1.83%       
## 12 Galicia            OS     0.0504             5.04 5.04%       
## 13 Madrid             OS     0.1876            18.8  18.76%      
## 14 Murcia             OS     0.0270             2.7  2.7%        
## 15 Navarra            OS     0.0150             1.5  1.5%        
## 16 País Vasco         OS     0.0554             5.54 5.54%       
## 17 Rioja              OS     0.0065             0.65 0.65%



# 4. Puede que nos resulte adecuado añadir el signo + / -

porcentaje_2011$porcentaje_d <- formatC(porcentaje_2011$porcentaje_b, digits=3, flag= "+")
porcentaje_2011 %>%
select(CCAA, Nombre, porcentaje, porcentaje_c, porcentaje_d)
## # A tibble: 17 x 5
##    CCAA               Nombre porcentaje porcentaje_c porcentaje_d
##    <chr>              <chr>  <chr>      <chr>        <chr>       
##  1 Andalucía          OS     0.1576     15.76%       +15.8       
##  2 Aragón             OS     0.0292     2.92%        +2.92       
##  3 Asturias           OS     0.0211     2.11%        +2.11       
##  4 Baleares           OS     0.0253     2.53%        +2.53       
##  5 Canarias           OS     0.0431     4.31%        +4.31       
##  6 Cantabria          OS     0.0124     1.24%        +1.24       
##  7 Castilla y León    OS     0.0515     5.15%        +5.15       
##  8 Castilla la Mancha OS     0.0326     3.26%        +3.26       
##  9 Cataluña           OS     0.1725     17.25%       +17.2       
## 10 Valencia           OS     0.0945     9.45%        +9.45       
## 11 Extremadura        OS     0.0183     1.83%        +1.83       
## 12 Galicia            OS     0.0504     5.04%        +5.04       
## 13 Madrid             OS     0.1876     18.76%       +18.8       
## 14 Murcia             OS     0.0270     2.7%         +2.7        
## 15 Navarra            OS     0.0150     1.5%         +1.5        
## 16 País Vasco         OS     0.0554     5.54%        +5.54       
## 17 Rioja              OS     0.0065     0.65%        +0.65