Back


Goal 9: Industry, innovation and infrastructure

Researchers


FN 9.5.2 Number of persons with PhD and researcher education
# Import
UDXISCPROD_raw <-
  statgl_url("UDXISCPROD", lang = language) %>% 
  statgl_fetch(
    ISCED11_level = 80,
    Sex           = px_all(),
    Aar           = px_all(),
    .col_code     = TRUE
    ) %>% 
  as_tibble()
 
# Transform
UDXISCPROD <- 
  UDXISCPROD_raw %>% 
  mutate(
    Aar = Aar %>% make_date(),
    Sex = Sex %>% fct_inorder()
    )

# Plot
UDXISCPROD %>% 
  ggplot(aes(
    x    = Aar,
    y    = value,
    fill = Sex
  )) +
  geom_col() +
  #facet_wrap(~ gender) +
  theme_statgl() + 
  scale_fill_statgl(reverse = TRUE) +
  theme(plot.margin = margin(10, 10, 10, 10)) +
  labs(
    title   = sdg9$figs$fig1$title[language],
    x       = " ",
    y       = sdg9$figs$fig1$y_lab[language],
    fill    = " ",
    caption = sdg9$figs$fig1$cap[language]
  )

StatBank

Method


# Transform
UDXISCPROD <- 
  UDXISCPROD_raw %>% 
  filter(Aar >= year(Sys.time()) - 5) %>% 
  #arrange(desc(time)) %>% 
  mutate(Aar = Aar %>% factor(levels = unique(Aar))) %>% 
  spread(3, 4)

# Table
UDXISCPROD %>% 
  select(-1) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = UDXISCPROD[[1]] %>% table())
2020 2021 2022 2023 2024
Phd. Programmes
Men 27 30 27 26 23
Women 27 32 35 39 37

Business statistics


GS Distribution of businesses according to interval of aggregate salaries and shares
# Import
ESD6A_raw <-
  statgl_url("ESX6A", lang = language) %>% 
  statgl_fetch(
    aar         = px_all(),
    ai2         = px_all(),
    section     = "total",
    .col_code   = TRUE
  ) %>% 
    as_tibble() |> 
  filter(ai2 != "Total")

# transform
ESD6A <- 
  ESD6A_raw %>%
  mutate(
    ai2 = ai2 %>% str_remove_all("[A-K]|\\.") %>% trimws() %>% fct_inorder() %>% fct_rev(),
    aar = aar %>% make_date()
  )


# legend ...
fill_lab <- colnames(statgl_url("ESX6A", lang = language) %>% statgl_fetch() %>% as_tibble())[1] %>% str_to_sentence()

# Plot
ESD6A %>% 
  ggplot(aes(
    x    = aar,
    y    = value,
    fill = ai2
  )) +
  geom_area() +
  theme_statgl() +
  scale_fill_statgl(reverse = TRUE, guide = guide_legend(reverse = TRUE)) +
  labs(
    title    = sdg9$figs$fig2$title[language],
    subtitle = sdg9$figs$fig2$sub[language],
    x        = " ",
    y        = ESD6A[["unit"]][1],
    fill     = fill_lab,
    caption  = sdg9$figs$fig2$cap[language]
  )

StatBank

Method


# col lab
col_lab        <- 1
names(col_lab) <- fill_lab


# transform
ESD6A <- 
  ESD6A_raw %>%
  mutate(
    ai2 = ai2 %>% 
      str_remove_all("[A-K]|\\.") %>% 
      trimws() %>% 
      fct_inorder() %>% 
      fct_rev(),
    ) %>% 
  filter(aar >= Sys.time() %>% year() - 5) %>% 
  mutate(aar = aar %>% fct_inorder() %>% fct_rev()) %>% 
  spread(aar, value) %>% 
  arrange(desc(ai2)) %>% 
  rename(col_lab)

# table
ESD6A %>%  
  statgl_table() %>% 
  add_footnote(ESD6A[["unit"]][1], notation = "symbol")
Interval of aggregate salaries and shares section 2022 2021 2020
00-10 Total 359 354 310
10-50 Total 585 680 510
50-100 Total 473 557 461
100-250 Total 785 818 751
250-500 Total 590 613 641
500-1000 Total 407 372 368
1000-5000 Total 517 477 479
5000-10000 Total 88 81 84
Over 10000 Total 110 111 100



# Import
ESX5A_raw <-
  statgl_url("ESX5A", lang = language) %>% 
  statgl_fetch(
    nykom      = 1:5,
    ai2        = px_all(),
    aar        = px_all(),
    .col_code  = TRUE
    ) %>% 
  as_tibble() |> 
  filter(ai2 != "Total")

ESX5A <- 
  ESX5A_raw %>% 
  rename(lonsum = ai2) %>% 
  mutate(
    aar    = aar %>% make_date(),
    lonsum = lonsum %>% str_remove_all("[A-K]|\\.") %>% trimws() %>% fct_inorder() %>% fct_rev()
  )


# Plot
ESX5A %>% 
  ggplot(aes(
    x    = aar,
    y    = value,
    fill = lonsum
  )) +
  geom_area() +
  facet_wrap(~ nykom, scales = "free") +
  theme_statgl() + 
  scale_fill_statgl(reverse = TRUE, guide = guide_legend(reverse = TRUE)) +
  labs(
    title    = sdg9$figs$fig3$title[language],
    subtitle = sdg9$figs$fig3$sub[language],
    x        = " ",
    y        = ESX5A[[3]][1],
    fill     = fill_lab,
    caption  = sdg9$figs$fig3$cap[language]
  )

StatBank

Method


ESX5A <- 
  ESX5A_raw %>% 
  rename(lonsum = ai2) %>% 
  filter(aar >= Sys.time() %>% year() - 5) %>% 
  mutate(
    aar    = aar %>% fct_inorder() %>% fct_rev(),
    nykom  = nykom %>% fct_inorder(),
    lonsum = lonsum %>% str_remove_all("[A-K]|\\.") %>% trimws() %>% fct_inorder() %>% fct_rev()
    ) %>% 
  spread(aar, value) %>% 
  arrange(nykom, desc(lonsum))

ESX5A %>% 
  select(nykom) %>% 
  rename(col_lab) %>% 
  statgl_table() %>% 
  pack_rows(index = ESX5A[["nykom"]] %>% table())
Interval of aggregate salaries and shares
Kommuneqarfik Sermersooq
Kommuneqarfik Sermersooq
Kommuneqarfik Sermersooq
Kommuneqarfik Sermersooq
Kommuneqarfik Sermersooq
Kommuneqarfik Sermersooq
Kommuneqarfik Sermersooq
Kommuneqarfik Sermersooq
Kommuneqarfik Sermersooq
Kommuneqarfik Sermersooq
Qeqqata Kommunia
Qeqqata Kommunia
Qeqqata Kommunia
Qeqqata Kommunia
Qeqqata Kommunia
Qeqqata Kommunia
Qeqqata Kommunia
Qeqqata Kommunia
Qeqqata Kommunia
Qeqqata Kommunia
Kommune Kujalleq
Kommune Kujalleq
Kommune Kujalleq
Kommune Kujalleq
Kommune Kujalleq
Kommune Kujalleq
Kommune Kujalleq
Kommune Kujalleq
Kommune Kujalleq
Kommune Kujalleq
Kommune Qeqertalik
Kommune Qeqertalik
Kommune Qeqertalik
Kommune Qeqertalik
Kommune Qeqertalik
Kommune Qeqertalik
Kommune Qeqertalik
Kommune Qeqertalik
Kommune Qeqertalik
Kommune Qeqertalik
Avannaata Kommunia
Avannaata Kommunia
Avannaata Kommunia
Avannaata Kommunia
Avannaata Kommunia
Avannaata Kommunia
Avannaata Kommunia
Avannaata Kommunia
Avannaata Kommunia
Avannaata Kommunia

Export of other than fish


GS Fisheries’ share of total exports
# Import
IEXSITC_raw <-
  statgl_url("IEXSITC", lang = language) %>% 
  statgl_fetch(quarter     = 0,
               processing  = c("G11", "3"),
               transaction = 2,
               time        = px_all(),
               .col_code   = TRUE
               ) %>% 
    as_tibble()

# Transform
step <-
  IEXSITC_raw %>% 
  mutate(processing = processing %>% str_remove_all("[:digit:]|\\-") %>% trimws(which = "left")) %>% 
  arrange(time, processing)

IEXSITC <- 
  step %>% 
  mutate(export = fct_reorder(processing, -value, sum, na.rm = TRUE),
         time = make_date(time),
         value = value / 10^9) 
# Plot
IEXSITC %>% 
  ggplot(aes(
    x = time,
    y = value, 
    fill = export
  )) +
  geom_area(position = "identity") +
  theme_statgl() +
  scale_fill_statgl(reverse = TRUE) +
  labs(
    title = sdg9$figs$fig4$title[language],
    y     = sdg9$figs$fig4$y_lab[language],
    x     = " ",
    fill  = " ",
    caption = sdg9$figs$fig4$cap[language]
  )

StatBank

Method


# Transform
IEXSITC <- 
  step %>% 
  mutate(
    export = fct_reorder(processing, -value, sum, na.rm = TRUE),
    value = value / 10^9
    ) 

tab <- 
  IEXSITC %>% 
  select(-2, -3) %>% 
  #arrange(desc(time)) %>% 
  filter(time >= year(Sys.time()) - 5) %>% 
  mutate(time = time %>% factor(levels = unique(time))) %>% 
  spread(time, value)

# Table
tab %>% 
  select(-1) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = tab[[1]] %>% table()) %>% 
  row_spec(1, bold = TRUE) %>% 
  add_footnote(sdg9$figs$fig4$foot[language], notation = "symbol")
2020 2021 2022 2023 2024 2025
Whole year
Total 5,30 5,06 5,88 6,21 5,21 NA
Fish (Not Marine Mammals), Crustaceans, Molluscs And Aquatic Invertebrates, And Preparations Thereo 4,85 4,78 5,64 5,86 5,08 NA
* Billons (DKK)
# Import
IEXSITC_raw <-
  statgl_url("IEXSITC", lang = language) %>%
  statgl_fetch(processing  = px_all(),
               transaction = 2,
               time        = px_all(),
               .col_code   = TRUE
               ) %>% 
    as_tibble()

# Transform
IEXSITC <- 
  IEXSITC_raw %>% 
  filter(processing %in% unique(IEXSITC_raw[[1]])[c(16, 26, 45, 55, 65, 74)]) %>% 
  mutate(
    time       = time %>% make_date(),
    value      = value / 10^6,
    processing = processing %>% str_remove_all("[:digit:]|\\-") %>% trimws()
    )

# Plot
IEXSITC %>% 
  ggplot(aes(
    x = time, 
    y = value,
    fill = processing
    )) +
  geom_area() + 
  facet_wrap(~ processing, labeller = label_wrap_gen(30)) +
  scale_fill_statgl() +
  theme_statgl() +
  theme(plot.margin = margin(10, 10, 10, 10)) +
  theme(legend.position = "none") +
  labs(
    title = sdg9$figs$fig5$title[language],
    x = " ", 
    y = sdg9$figs$fig5$y_lab[language],
    fill = " ",
    caption = sdg9$figs$fig4$cap[language]
 )

StatBank

Method


# Transform
IEXSITC <- 
  IEXSITC_raw %>% 
  filter(processing %in% unique(IEXSITC_raw[[1]])[c(16, 26, 45, 55, 65, 74)],
         time >= year(Sys.time()) -7,
         value != "NA") %>% 
  #arrange(desc(time)) %>% 
  mutate(
    value      = round(value / 10^6, 3),
    processing = processing %>% str_remove_all("[:digit:]|\\-") %>% trimws(),
    time       = time %>% factor(levels = unique(time))
    ) %>% 
  spread(3,4)

# Table
IEXSITC %>% 
  select(-2) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = IEXSITC[[2]] %>% str_to_title() %>% table()) %>% 
  add_footnote(sdg9$figs$fig5$foot[language], notation = "symbol")
2018 2019 2020 2021 2022 2023 2024
Export
Machinery and transport equipment, total 530,455 315,276 326,187 182,999 179,201 260,847 76,197
Manufactured products mainlysemimanufactured products, total 13,285 5,699 13,193 8,149 16,420 20,536 11,039
Manufactured products, total 11,818 11,720 5,117 4,683 16,185 26,685 24,564
Mineral fuels and lubricants etc., total 0,002 0,004 0,079 0,002 0,004 0,017 0,141
Miscellaneous articles and transactions, total 124,994 108,924 91,546 74,050 9,617 19,494 4,548
Raw materials, inedible, total 4,605 7,882 6,824 7,135 11,907 11,294 13,291
* Billions (DKK)

Industry’s gross value added


FN 9.2.1 Industry’s gross value added
# Import
BVT <-
  statgl_url("NRX0418", lang = language) %>% 
  statgl_fetch(units    = "L",
               industry = px_all(),
               time     = px_all(),
               .col_code  = TRUE
               ) %>% 
    as_tibble() %>% 
  mutate(value = value/1000)


BVT <- BVT %>%  filter(industry %in% unique(BVT %>% pull(2))[9])


BNP <-
  statgl_url("NRX10", lang = language) %>% 
  statgl_fetch(
    units   = "L",
    account = "02",
    time    = px_all(),
    .col_code = TRUE
    ) %>% 
  as_tibble()

# Transform
industry <- 
  BVT %>% 
  rename("BVT" = 4) %>% 
  left_join(BNP %>% rename("BNP" = 4)) %>% 
  mutate(value = BVT / BNP,
         time = time %>% as.numeric())

# Plot
industry %>% 
  ggplot(aes(
    x     = time,
    y     = value,
    color = units
  )) +
  geom_line(size = 2) +
  scale_y_continuous(labels = scales:: percent) +
  theme_statgl() + 
  scale_color_statgl() +
  theme(legend.position = "none") +
  labs(
    title    = sdg9$figs$fig6$title[language],
    subtitle = industry[[1]][1],
    x        = " ",
    y        = sdg9$figs$fig6$y_lab[language],
    caption  = sdg9$figs$fig6$cap[language]
  )

Statbank, gross value added

Statbank, GDP per capita


tab <- 
  industry %>% 
  select(industry, time, value) %>% 
  mutate(
    industry = industry %>% str_remove_all("C "),
    value    = value * 100
    ) %>% 
  #arrange(desc(time)) %>% 
  filter(time >= max(time) - 5) %>% 
  mutate(time = time %>% as.character() %>%  fct_inorder()) %>% 
  mutate(value = value %>% round(2)) %>% 
  mutate(value = paste0(value, "%")) %>% 
  spread(time, value)

tab %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  add_footnote(sdg9$figs$fig6$foot[language], notation = "symbol")
2018 2019 2020 2021 2022 2023
Industry 0.29% 0.19% 0.16% 0.11% 0.23% 0.15%
* Share of GDP per capita

Industry employment


FN 9.2.2 Industry employment
# Import
NRX0518_raw <-
  statgl_url("NRX0518", lang = language) %>% 
  statgl_fetch(
    units    = "BES",
    industry = c("C", "TOT"),
    time     = px_all(),
    .col_code  = TRUE
    ) %>% 
    as_tibble()


NRX0518 <- 
  NRX0518_raw %>% 
  spread(industry, value) %>% 
  rename("indu" = 3, "total" = 4) %>% 
  mutate(
    value = indu / total,
    time = time %>% as.numeric()
    )



NRX0518 %>% 
  ggplot(aes(
    x = time,
    y = value,
    color = units
  )) +
  geom_line(size = 2) +
  expand_limits(y = 0) +
  scale_y_continuous(labels  = scales::percent_format(scale = 100, accuracy = 1, big.mark = ".",
  decimal.mark = ",")) +
  theme_statgl() + 
  scale_color_statgl() +
  theme(legend.position = "none") +
  labs(
    title = sdg9$figs$fig7$title[language],
    x = " ",
    y = sdg9$figs$fig7$y_lab[language],
    caption = sdg9$figs$fig7$cap[language]
  )

StatBank


NRX0518 %>% 
  select(time, value) %>% 
  #arrange(desc(time)) %>% 
  filter(time >= max(time) - 5) %>% 
  mutate(time = time %>% as.character() %>%  fct_inorder()) %>% 
  mutate(
    value = value * 100,
    value = value %>% round(1)
    ) %>% 
  spread(time, value) %>% 
  statgl_table() %>% 
  add_footnote(sdg9$figs$fig7$foot[language], notation = "symbol")
2018 2019 2020 2021 2022 2023
5,8 5,4 5,6 5,4 5,4 5,4
* Percentage of total employment