Dane

Zestawienie pobrano z https://www.kaggle.com/datasets/prasertk/fortune-global-500-from-20192021. Na podstawie kolumny hqcity (miasto-siedziba) dodano kolumnę state (kraj) używając geokodera OSM Nominatim. Wczytujemy dane:

f <- read.csv("FG500.csv", sep = ';',  header=T, na.string="NA")

Ograniczamy się zestawienia dla roku 2021:

f21 <- f %>% filter (year == 2021)

Kraje grupujemy. Generalnie na kontynenty, ale Europę na UE i resztę. Rosję i Turcję arbitralnie zaliczamy do Europy. Przypisanie krajów do kontynentów jest w pliku continents.csv:

c <- read.csv("continents.csv", sep = ';',  header=T, na.string="NA")
f21c <- left_join(f21, c, by=c("state"))

N <- nrow(f21c)

Kontynenty wg udziału przedsiębiorstw z rankingu FG500

Ogółem

f21c_c <- f21c %>% group_by(continent) %>%
  summarise(c = n()) %>%
  mutate (c = c / N * 100)
###
kable(f21c_c, col.names = c('kontynent','%'))
kontynent %
Asia 45.2
Australia 0.6
EU 17.8
Europe 8.0
NAmerica 27.2
SAmerica 1.2

To samo co wyżej ale tylko sektor Technology

f21t <- f21c %>% filter (sector == 'Technology')
Nt <- nrow(f21t)
f21t_c <- f21t %>% group_by(continent) %>%
  summarise(c = n()) %>%
  mutate (c = c / Nt * 100)
###
#f21t_c
kable(f21t_c, col.names = c('kontynent','%'))
kontynent %
Asia 56.41026
EU 10.25641
NAmerica 33.33333

To samo co wyżej ale tylko sektor Energy

f21e <- f21c %>% filter (sector == 'Energy')
Ne <- nrow(f21e)
f21e_c <- f21e %>% group_by(continent) %>%
  summarise(c = n()) %>%
  mutate (c = c / Ne * 100)
###
#f21e_c
kable(f21e_c, col.names = c('kontynent','%'))
kontynent %
Asia 48.529412
Australia 1.470588
EU 19.117647
Europe 13.235294
NAmerica 14.705882
SAmerica 2.941177

Wykresy

p1 <- ggplot(f21c_c, aes(x = reorder(continent, c ))) +
geom_bar(aes(y = c ), stat="identity", alpha=.25 ) +
  xlab(label="kontynent") +
  ylab(label="") +
  ggtitle("Grupy krajów wg liczby przedsiębiorstwa z rankingu Fortune Global 500 (2021r)",
          subtitle='sektor: ogółem')  +
  coord_flip()

p2 <- ggplot(f21t_c, aes(x = reorder(continent, c ))) +
  geom_bar(aes(y = c ), stat="identity", alpha=.25 ) +
  xlab(label="") +
  ylab(label="") +
  ggtitle("Grupy krajów wg liczby przedsiębiorstw z rankingu Fortune Global 500 (2021r)",
          subtitle='sektor: technology')  +
  coord_flip()

p3 <- ggplot(f21e_c, aes(x = reorder(continent, c ))) +
  geom_bar(aes(y = c ), stat="identity", alpha=.25 ) +
  xlab(label="") +
  ylab(label="") +
  ggtitle("Grupy krajów wg liczby przedsiębiorstw z rankingu Fortune Global 500 (2021r)",
          subtitle='sektor: energy') +
  coord_flip()


p0 <- ggarrange(p1, p2, p3, ncol=3, nrow=1)
p0

Rozkład przedsiębiorstw ze względu na wielkość przychodów

Według sektorów działalności

ggplot(f21c, aes(x=sector, y=revenues, fill=sector)) + 
  geom_boxplot() + 
  coord_flip() +
  ggtitle("Przedsiębiorstwa z rankingu Fortune Global 500 (2021r) wg przychodów") +
  ylab("") + xlab("") + guides(fill=FALSE)

Wg kontynentów

ggplot(f21c, aes(x=continent, y=revenues, fill=continent)) + 
  geom_boxplot() + 
  coord_flip() +
  ggtitle("Przedsiębiorstwa z rankingu Fortune Global 500 (2021r) wg przychodów") +
  ylab("") + xlab("") + guides(fill=FALSE)

Kraje wg liczby przedsiębiorstw z rankingu FG500

Tylko kraje z trzema lub więcej przedsiębiorstwami:

f21x <- f %>% group_by(state, year) %>%
  summarise(c = n()) %>%
  filter (c > 2)
## `summarise()` has grouped output by 'state'. You can override using the `.groups` argument.
p5 <- ggplot(f21x, aes(x=reorder(state, c ), y=c, color=as.factor(year))) +
  geom_point(size=2, alpha=.4) +
  coord_flip() +
  xlab(label="kraj") +
  ylab(label="liczba przedsiębiorstw") +
  labs(color='') +
  ##theme_nikw()
ggtitle("Kraje wg liczby przedsiębiorstw z rankingu Fortune Global 500 (2019--21)",
        subtitle='Tylko kraje z trzema lub więcej przedsiębiorstwami')

p5