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())
2021 2022 2023 2024
Phd. Programmes
Men 30 27 26 23
Women 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
00-10 Total 359 354
10-50 Total 585 680
50-100 Total 473 557
100-250 Total 785 818
250-500 Total 590 613
500-1000 Total 407 372
1000-5000 Total 517 477
5000-10000 Total 88 81
Over 10000 Total 110 111



# 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")
2021 2022 2023 2024 2025
Whole year
Total 5,11 5,88 6,50 5,52 NA
Fish (Not Marine Mammals), Crustaceans, Molluscs And Aquatic Invertebrates, And Preparations Thereo 4,78 5,64 5,86 4,95 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")
2019 2020 2021 2022 2023 2024
Export
Machinery and transport equipment, total 315,276 326,187 232,384 179,201 556,847 516,213
Manufactured products mainlysemimanufactured products, total 5,699 13,193 8,149 16,420 20,536 11,039
Manufactured products, total 11,720 5,117 4,683 16,185 26,685 24,564
Mineral fuels and lubricants etc., total 0,004 0,079 0,002 0,004 0,017 0,141
Miscellaneous articles and transactions, total 108,924 91,546 74,050 9,617 19,494 4,548
Raw materials, inedible, total 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