Na początku projektu wczytałem dane oraz przygotowałem wszelkie pomocnicze tabele.
#Wczytanie danych
owid_covid_data <- read_csv("owid_covid_data.csv", show_col_types = FALSE)
excess_mortality <- read_csv("excess_mortality.csv", show_col_types = FALSE)
#Przygotowanie pomocniczych tabel
continents = owid_covid_data %>% filter(!is.na(continent)) %>% distinct(continent)
locations = owid_covid_data %>% filter(!is.na(continent)) %>% distinct(location)
eu = owid_covid_data %>% filter(continent == "Europe") %>% distinct(location)
owid_covid_data_eu = owid_covid_data %>% filter(location %in% eu$location)
excess_mortality_eu = excess_mortality %>% filter(location %in% eu$location)
set.seed(314159)
selected_locations_eu = eu %>% filter(location != "Poland") %>% slice_sample(n=3)
selected_period = seq(dmy('01.05.2021'), dmy('31.12.2021'), by=1)
selected_date = seq(dmy('01.05.2021'), dmy('31.12.2021'), by=1) %>% sample(1)
location_population = owid_covid_data %>%
select(location, population) %>%
distinct(location, population)
Utworzyłem następujące ramki pomocnicze:
continents zawierająca nazwy 6-ściu kontynentów,continents %>% kable1()
| continent |
|---|
| Asia |
| Europe |
| Africa |
| North America |
| South America |
| Oceania |
locations, zawierająca 229 nazw krajów,locations %>% kable2()
| location |
|---|
| Afghanistan |
| Albania |
| Algeria |
| Andorra |
| Angola |
| Anguilla |
| Antigua and Barbuda |
| Argentina |
| Armenia |
| Aruba |
| Australia |
| Austria |
| Azerbaijan |
| Bahamas |
| Bahrain |
| Bangladesh |
| Barbados |
| Belarus |
| Belgium |
| Belize |
| Benin |
| Bermuda |
| Bhutan |
| Bolivia |
| Bonaire Sint Eustatius and Saba |
| Bosnia and Herzegovina |
| Botswana |
| Brazil |
| British Virgin Islands |
| Brunei |
| Bulgaria |
| Burkina Faso |
| Burundi |
| Cambodia |
| Cameroon |
| Canada |
| Cape Verde |
| Cayman Islands |
| Central African Republic |
| Chad |
| Chile |
| China |
| Colombia |
| Comoros |
| Congo |
| Cook Islands |
| Costa Rica |
| Cote d’Ivoire |
| Croatia |
| Cuba |
| Curacao |
| Cyprus |
| Czechia |
| Democratic Republic of Congo |
| Denmark |
| Djibouti |
| Dominica |
| Dominican Republic |
| Ecuador |
| Egypt |
| El Salvador |
| Equatorial Guinea |
| Eritrea |
| Estonia |
| Eswatini |
| Ethiopia |
| Faeroe Islands |
| Falkland Islands |
| Fiji |
| Finland |
| France |
| French Polynesia |
| Gabon |
| Gambia |
| Georgia |
| Germany |
| Ghana |
| Gibraltar |
| Greece |
| Greenland |
| Grenada |
| Guam |
| Guatemala |
| Guernsey |
| Guinea |
| Guinea-Bissau |
| Guyana |
| Haiti |
| Honduras |
| Hong Kong |
| Hungary |
| Iceland |
| India |
| Indonesia |
| Iran |
| Iraq |
| Ireland |
| Isle of Man |
| Israel |
| Italy |
| Jamaica |
| Japan |
| Jersey |
| Jordan |
| Kazakhstan |
| Kenya |
| Kiribati |
| Kosovo |
| Kuwait |
| Kyrgyzstan |
| Laos |
| Latvia |
| Lebanon |
| Lesotho |
| Liberia |
| Libya |
| Liechtenstein |
| Lithuania |
| Luxembourg |
| Macao |
| Madagascar |
| Malawi |
| Malaysia |
| Maldives |
| Mali |
| Malta |
| Marshall Islands |
| Mauritania |
| Mauritius |
| Mexico |
| Micronesia (country) |
| Moldova |
| Monaco |
| Mongolia |
| Montenegro |
| Montserrat |
| Morocco |
| Mozambique |
| Myanmar |
| Namibia |
| Nauru |
| Nepal |
| Netherlands |
| New Caledonia |
| New Zealand |
| Nicaragua |
| Niger |
| Nigeria |
| Niue |
| North Macedonia |
| Northern Cyprus |
| Northern Mariana Islands |
| Norway |
| Oman |
| Pakistan |
| Palau |
| Palestine |
| Panama |
| Papua New Guinea |
| Paraguay |
| Peru |
| Philippines |
| Pitcairn |
| Poland |
| Portugal |
| Puerto Rico |
| Qatar |
| Romania |
| Russia |
| Rwanda |
| Saint Helena |
| Saint Kitts and Nevis |
| Saint Lucia |
| Saint Pierre and Miquelon |
| Saint Vincent and the Grenadines |
| Samoa |
| San Marino |
| Sao Tome and Principe |
| Saudi Arabia |
| Senegal |
| Serbia |
| Seychelles |
| Sierra Leone |
| Singapore |
| Sint Maarten (Dutch part) |
| Slovakia |
| Slovenia |
| Solomon Islands |
| Somalia |
| South Africa |
| South Korea |
| South Sudan |
| Spain |
| Sri Lanka |
| Sudan |
| Suriname |
| Sweden |
| Switzerland |
| Syria |
| Taiwan |
| Tajikistan |
| Tanzania |
| Thailand |
| Timor |
| Togo |
| Tokelau |
| Tonga |
| Trinidad and Tobago |
| Tunisia |
| Turkey |
| Turkmenistan |
| Turks and Caicos Islands |
| Tuvalu |
| Uganda |
| Ukraine |
| United Arab Emirates |
| United Kingdom |
| United States |
| United States Virgin Islands |
| Uruguay |
| Uzbekistan |
| Vanuatu |
| Vatican |
| Venezuela |
| Vietnam |
| Wallis and Futuna |
| Yemen |
| Zambia |
| Zimbabwe |
eu zawierająca nazwy 51 krajów europy,eu %>% kable2()
| location |
|---|
| Albania |
| Andorra |
| Austria |
| Belarus |
| Belgium |
| Bosnia and Herzegovina |
| Bulgaria |
| Croatia |
| Cyprus |
| Czechia |
| Denmark |
| Estonia |
| Faeroe Islands |
| Finland |
| France |
| Germany |
| Gibraltar |
| Greece |
| Guernsey |
| Hungary |
| Iceland |
| Ireland |
| Isle of Man |
| Italy |
| Jersey |
| Kosovo |
| Latvia |
| Liechtenstein |
| Lithuania |
| Luxembourg |
| Malta |
| Moldova |
| Monaco |
| Montenegro |
| Netherlands |
| North Macedonia |
| Norway |
| Poland |
| Portugal |
| Romania |
| Russia |
| San Marino |
| Serbia |
| Slovakia |
| Slovenia |
| Spain |
| Sweden |
| Switzerland |
| Ukraine |
| United Kingdom |
| Vatican |
Ta ramka posłużyła mi do wydzielania z tabel
owid_covid_data oraz excess_mortality danych
dla krajów Europy (owid_covid_data_eu,
excess_mortality_eu).
Ponadto wylosowałem trzy kraje europejskie zapisane w
selected_locations_eu,
selected_locations_eu %>% kable1()
| location |
|---|
| Czechia |
| Montenegro |
| Germany |
przygotowałem wektor zawierający daty z badanego okresu
selected_period (od 2021-05-01r. do 2021-12-31r.),
wylosowałem datę selected_date (2021-07-23r.) oraz
przygotowałem ramkę z wielkościami populacji każdej lokalizacji
location_population wykorzystywaną w zadaniu trzecim.
location_population %>% kable2()
| location | population |
|---|---|
| Afghanistan | 39835428 |
| Africa | 1373486472 |
| Albania | 2872934 |
| Algeria | 44616626 |
| Andorra | 77354 |
| Angola | 33933611 |
| Anguilla | 15125 |
| Antigua and Barbuda | 98728 |
| Argentina | 45605823 |
| Armenia | 2968128 |
| Aruba | 107195 |
| Asia | 4678444992 |
| Australia | 25788217 |
| Austria | 9043072 |
| Azerbaijan | 10223344 |
| Bahamas | 396914 |
| Bahrain | 1748295 |
| Bangladesh | 166303494 |
| Barbados | 287708 |
| Belarus | 9442867 |
| Belgium | 11632334 |
| Belize | 404915 |
| Benin | 12451031 |
| Bermuda | 62092 |
| Bhutan | 779900 |
| Bolivia | 11832936 |
| Bonaire Sint Eustatius and Saba | 26445 |
| Bosnia and Herzegovina | 3263459 |
| Botswana | 2397240 |
| Brazil | 213993441 |
| British Virgin Islands | 30423 |
| Brunei | 441532 |
| Bulgaria | 6896655 |
| Burkina Faso | 21497097 |
| Burundi | 12255429 |
| Cambodia | 16946446 |
| Cameroon | 27224262 |
| Canada | 38067913 |
| Cape Verde | 561901 |
| Cayman Islands | 66498 |
| Central African Republic | 4919987 |
| Chad | 16914985 |
| Chile | 19212362 |
| China | 1444216102 |
| Colombia | 51265841 |
| Comoros | 888456 |
| Congo | 5657017 |
| Cook Islands | 17572 |
| Costa Rica | 5139053 |
| Cote d’Ivoire | 27053629 |
| Croatia | 4081657 |
| Cuba | 11317498 |
| Curacao | 164796 |
| Cyprus | 896005 |
| Czechia | 10724553 |
| Democratic Republic of Congo | 92377986 |
| Denmark | 5813302 |
| Djibouti | 1002197 |
| Dominica | 72172 |
| Dominican Republic | 10953714 |
| Ecuador | 17888474 |
| Egypt | 104258327 |
| El Salvador | 6518500 |
| Equatorial Guinea | 1449891 |
| Eritrea | 3601462 |
| Estonia | 1325188 |
| Eswatini | 1172369 |
| Ethiopia | 117876226 |
| Europe | 748962983 |
| European Union | 447189915 |
| Faeroe Islands | 49053 |
| Falkland Islands | 3528 |
| Fiji | 902899 |
| Finland | 5548361 |
| France | 67422000 |
| French Polynesia | 282534 |
| Gabon | 2278829 |
| Gambia | 2486937 |
| Georgia | 3979773 |
| Germany | 83900471 |
| Ghana | 31732128 |
| Gibraltar | 33691 |
| Greece | 10370747 |
| Greenland | 56868 |
| Grenada | 113015 |
| Guam | 170184 |
| Guatemala | 18249868 |
| Guernsey | 63385 |
| Guinea | 13497237 |
| Guinea-Bissau | 2015490 |
| Guyana | 790329 |
| Haiti | 11541683 |
| High income | 1214930230 |
| Honduras | 10062994 |
| Hong Kong | 7552800 |
| Hungary | 9634162 |
| Iceland | 368792 |
| India | 1393409033 |
| Indonesia | 276361788 |
| International | NA |
| Iran | 85028760 |
| Iraq | 41179351 |
| Ireland | 4982904 |
| Isle of Man | 85410 |
| Israel | 9291000 |
| Italy | 60367471 |
| Jamaica | 2973462 |
| Japan | 126050796 |
| Jersey | 101073 |
| Jordan | 10269022 |
| Kazakhstan | 18994958 |
| Kenya | 54985702 |
| Kiribati | 121388 |
| Kosovo | 1782115 |
| Kuwait | 4328553 |
| Kyrgyzstan | 6628347 |
| Laos | 7379358 |
| Latvia | 1866934 |
| Lebanon | 6769151 |
| Lesotho | 2159067 |
| Liberia | 5180208 |
| Libya | 6958538 |
| Liechtenstein | 38254 |
| Lithuania | 2689862 |
| Low income | 665149040 |
| Lower middle income | 3330652550 |
| Luxembourg | 634814 |
| Macao | 658391 |
| Madagascar | 28427333 |
| Malawi | 19647681 |
| Malaysia | 32776195 |
| Maldives | 543620 |
| Mali | 20855724 |
| Malta | 516100 |
| Marshall Islands | 59618 |
| Mauritania | 4775110 |
| Mauritius | 1273428 |
| Mexico | 130262220 |
| Micronesia (country) | 116255 |
| Moldova | 4024025 |
| Monaco | 39520 |
| Mongolia | 3329282 |
| Montenegro | 628051 |
| Montserrat | 4981 |
| Morocco | 37344787 |
| Mozambique | 32163045 |
| Myanmar | 54806014 |
| Namibia | 2587344 |
| Nauru | 10873 |
| Nepal | 29674920 |
| Netherlands | 17173094 |
| New Caledonia | 288217 |
| New Zealand | 5126300 |
| Nicaragua | 6702379 |
| Niger | 25130810 |
| Nigeria | 211400704 |
| Niue | 1614 |
| North America | 596581283 |
| North Macedonia | 2082661 |
| Northern Cyprus | NA |
| Northern Mariana Islands | 57910 |
| Norway | 5465629 |
| Oceania | 43219954 |
| Oman | 5223376 |
| Pakistan | 225199929 |
| Palau | 18174 |
| Palestine | 5222756 |
| Panama | 4381583 |
| Papua New Guinea | 9119005 |
| Paraguay | 7219641 |
| Peru | 33359415 |
| Philippines | 111046910 |
| Pitcairn | 47 |
| Poland | 37797000 |
| Portugal | 10167923 |
| Puerto Rico | 2828246 |
| Qatar | 2930524 |
| Romania | 19127772 |
| Russia | 145912022 |
| Rwanda | 13276517 |
| Saint Helena | 6095 |
| Saint Kitts and Nevis | 53546 |
| Saint Lucia | 184401 |
| Saint Pierre and Miquelon | 5771 |
| Saint Vincent and the Grenadines | 111269 |
| Samoa | 200144 |
| San Marino | 34010 |
| Sao Tome and Principe | 223364 |
| Saudi Arabia | 35340680 |
| Senegal | 17196308 |
| Serbia | 6871547 |
| Seychelles | 98910 |
| Sierra Leone | 8141343 |
| Singapore | 5453600 |
| Sint Maarten (Dutch part) | 43421 |
| Slovakia | 5449270 |
| Slovenia | 2078723 |
| Solomon Islands | 703995 |
| Somalia | 16359500 |
| South Africa | 60041996 |
| South America | 434260137 |
| South Korea | 51305184 |
| South Sudan | 11381377 |
| Spain | 46745211 |
| Sri Lanka | 21497306 |
| Sudan | 44909351 |
| Suriname | 591798 |
| Sweden | 10160159 |
| Switzerland | 8715494 |
| Syria | 18275704 |
| Taiwan | 23855008 |
| Tajikistan | 9749625 |
| Tanzania | 61498438 |
| Thailand | 69950844 |
| Timor | 1343875 |
| Togo | 8478242 |
| Tokelau | 1368 |
| Tonga | 106759 |
| Trinidad and Tobago | 1403374 |
| Tunisia | 11935764 |
| Turkey | 85042736 |
| Turkmenistan | 6117933 |
| Turks and Caicos Islands | 39226 |
| Tuvalu | 11925 |
| Uganda | 47123533 |
| Ukraine | 43466822 |
| United Arab Emirates | 9991083 |
| United Kingdom | 68207114 |
| United States | 332915074 |
| United States Virgin Islands | 104218 |
| Upper middle income | 2513672790 |
| Uruguay | 3485152 |
| Uzbekistan | 33935765 |
| Vanuatu | 314464 |
| Vatican | 812 |
| Venezuela | 28704947 |
| Vietnam | 98168829 |
| Wallis and Futuna | 11094 |
| World | 7874965730 |
| Yemen | 30490639 |
| Zambia | 18920657 |
| Zimbabwe | 15092171 |
Dla wybranego okresu wykonałem podsumowanie zawierające średnią
liczbę wykonywanych dziennie szczepień w przeliczeniu na milion
mieszkańców. Do wyliczenia średniej użyłem danych wygładzonych
tygodniowo ze zmiennej
new_vaccinations_smoothed_per_million.
sum_selected_data = owid_covid_data %>%
filter(date %in% selected_period &
location %in% locations$location &
!is.na(new_vaccinations_smoothed_per_million)) %>%
group_by(continent, location) %>%
summarise(
mean_nvspm = mean(new_vaccinations_smoothed_per_million, na.rm = T),
.groups = "keep") %>%
arrange(desc(mean_nvspm))
sum_selected_data %>% mutate(mean_nvspm = mean_nvspm %>% round(0)) %>% kable2()
| continent | location | mean_nvspm |
|---|---|---|
| Africa | Saint Helena | 15915 |
| Oceania | Tokelau | 12718 |
| North America | Cuba | 11910 |
| Oceania | Pitcairn | 10892 |
| Oceania | Niue | 10645 |
| Asia | Brunei | 8003 |
| Asia | South Korea | 7863 |
| North America | Bonaire Sint Eustatius and Saba | 7412 |
| Asia | China | 7227 |
| Europe | Denmark | 7099 |
| Asia | Malaysia | 6956 |
| Asia | Cambodia | 6791 |
| Europe | Ireland | 6666 |
| Asia | Singapore | 6628 |
| Europe | Iceland | 6541 |
| Europe | Portugal | 6413 |
| Oceania | Australia | 6379 |
| Asia | Japan | 6345 |
| Europe | Faeroe Islands | 6321 |
| Oceania | New Zealand | 6284 |
| Europe | Belgium | 6250 |
| South America | Chile | 6227 |
| South America | Argentina | 6198 |
| Asia | Sri Lanka | 6167 |
| Asia | Vietnam | 6161 |
| Europe | France | 6153 |
| Europe | Italy | 6145 |
| South America | Uruguay | 6107 |
| Asia | Northern Cyprus | 6062 |
| Europe | Norway | 6026 |
| Europe | Austria | 6020 |
| Asia | Thailand | 6010 |
| South America | Peru | 5952 |
| South America | Ecuador | 5949 |
| Europe | Spain | 5947 |
| Africa | Mauritius | 5930 |
| Europe | Germany | 5916 |
| North America | Canada | 5906 |
| Asia | Taiwan | 5906 |
| Europe | Cyprus | 5904 |
| Oceania | Cook Islands | 5893 |
| Europe | Malta | 5762 |
| Europe | Sweden | 5761 |
| Europe | Luxembourg | 5742 |
| Europe | Finland | 5677 |
| Europe | Greece | 5611 |
| Asia | Iran | 5572 |
| Europe | Netherlands | 5546 |
| Asia | Kuwait | 5523 |
| North America | El Salvador | 5512 |
| North America | Costa Rica | 5505 |
| South America | Brazil | 5450 |
| Europe | Liechtenstein | 5436 |
| Oceania | Fiji | 5433 |
| Asia | Macao | 5401 |
| Oceania | Samoa | 5352 |
| Asia | Mongolia | 5301 |
| Europe | Guernsey | 5242 |
| North America | Panama | 5214 |
| Asia | Turkey | 5189 |
| Europe | Switzerland | 5174 |
| Asia | Qatar | 5161 |
| Europe | United Kingdom | 5061 |
| Europe | Isle of Man | 5055 |
| Europe | Jersey | 5023 |
| Asia | United Arab Emirates | 4961 |
| Europe | Latvia | 4911 |
| Oceania | Tonga | 4910 |
| Europe | Lithuania | 4804 |
| Asia | Saudi Arabia | 4796 |
| Europe | Andorra | 4782 |
| Oceania | Nauru | 4775 |
| South America | Colombia | 4742 |
| Europe | Gibraltar | 4712 |
| Europe | Czechia | 4701 |
| North America | Greenland | 4667 |
| Asia | Bahrain | 4667 |
| North America | Nicaragua | 4630 |
| Asia | Hong Kong | 4619 |
| Asia | Oman | 4599 |
| Asia | Uzbekistan | 4582 |
| North America | Dominican Republic | 4551 |
| Africa | Morocco | 4505 |
| South America | Venezuela | 4431 |
| Europe | Monaco | 4282 |
| Europe | Estonia | 4216 |
| Europe | Slovenia | 4207 |
| Oceania | New Caledonia | 4198 |
| North America | Mexico | 4123 |
| Africa | Cape Verde | 4114 |
| North America | Cayman Islands | 4093 |
| Europe | Hungary | 4069 |
| Africa | Tunisia | 3979 |
| North America | Trinidad and Tobago | 3946 |
| Asia | Azerbaijan | 3920 |
| Oceania | Kiribati | 3893 |
| Oceania | French Polynesia | 3887 |
| North America | Belize | 3881 |
| Asia | Philippines | 3866 |
| Europe | Croatia | 3859 |
| Europe | Poland | 3855 |
| North America | Honduras | 3827 |
| Asia | Laos | 3790 |
| South America | Paraguay | 3780 |
| Africa | Rwanda | 3765 |
| Europe | Kosovo | 3760 |
| Asia | India | 3759 |
| North America | Antigua and Barbuda | 3755 |
| Asia | Indonesia | 3704 |
| North America | Bermuda | 3699 |
| Europe | Montenegro | 3698 |
| North America | Turks and Caicos Islands | 3657 |
| Asia | Timor | 3588 |
| Asia | Bhutan | 3553 |
| Europe | Russia | 3529 |
| Europe | Slovakia | 3513 |
| Asia | Kazakhstan | 3469 |
| Europe | Belarus | 3437 |
| North America | Aruba | 3416 |
| Oceania | Tuvalu | 3398 |
| North America | Anguilla | 3380 |
| Europe | San Marino | 3365 |
| Europe | North Macedonia | 3337 |
| North America | Saint Kitts and Nevis | 3228 |
| North America | United States | 3198 |
| North America | Barbados | 3194 |
| North America | British Virgin Islands | 3136 |
| Asia | Turkmenistan | 3123 |
| South America | Suriname | 3112 |
| North America | Curacao | 3071 |
| South America | Bolivia | 3070 |
| Asia | Maldives | 3029 |
| South America | Guyana | 3027 |
| Asia | Nepal | 2981 |
| Asia | Jordan | 2939 |
| Europe | Serbia | 2900 |
| Asia | Tajikistan | 2853 |
| North America | Bahamas | 2852 |
| Asia | Bangladesh | 2797 |
| North America | Sint Maarten (Dutch part) | 2746 |
| Asia | Pakistan | 2744 |
| Asia | Israel | 2738 |
| Europe | Albania | 2683 |
| Africa | Sao Tome and Principe | 2659 |
| Europe | Ukraine | 2591 |
| Africa | Comoros | 2534 |
| Asia | Georgia | 2512 |
| Asia | Myanmar | 2492 |
| North America | Guatemala | 2475 |
| Oceania | Wallis and Futuna | 2458 |
| Africa | Seychelles | 2437 |
| Asia | Palestine | 2426 |
| Oceania | Vanuatu | 2374 |
| Asia | Lebanon | 2346 |
| North America | Grenada | 2337 |
| Europe | Romania | 2301 |
| Asia | Armenia | 2238 |
| Europe | Bosnia and Herzegovina | 2118 |
| Africa | Egypt | 2098 |
| Africa | Botswana | 2061 |
| Africa | South Africa | 1873 |
| Africa | Zimbabwe | 1837 |
| Africa | Mozambique | 1813 |
| North America | Saint Lucia | 1785 |
| North America | Dominica | 1757 |
| North America | Saint Vincent and the Grenadines | 1729 |
| Europe | Bulgaria | 1724 |
| Europe | Moldova | 1655 |
| Africa | Mauritania | 1607 |
| Africa | Libya | 1537 |
| Africa | Lesotho | 1515 |
| North America | Jamaica | 1454 |
| Asia | Iraq | 1372 |
| Oceania | Solomon Islands | 1367 |
| Asia | Kyrgyzstan | 1363 |
| Africa | Angola | 1322 |
| Africa | Eswatini | 1270 |
| Africa | Equatorial Guinea | 1070 |
| Africa | Togo | 1061 |
| Africa | Algeria | 1018 |
| Africa | Cote d’Ivoire | 999 |
| Africa | Namibia | 986 |
| Africa | Ghana | 927 |
| Africa | Uganda | 913 |
| Africa | Guinea-Bissau | 872 |
| North America | Montserrat | 837 |
| Africa | Guinea | 821 |
| Africa | Gabon | 770 |
| Africa | Liberia | 731 |
| Africa | Kenya | 664 |
| Africa | Benin | 613 |
| Asia | Syria | 530 |
| Africa | Congo | 528 |
| Africa | Djibouti | 484 |
| Africa | Central African Republic | 458 |
| Africa | Gambia | 449 |
| Asia | Afghanistan | 449 |
| Africa | Sierra Leone | 425 |
| Africa | Senegal | 360 |
| Africa | Zambia | 353 |
| Africa | Somalia | 347 |
| Africa | Ethiopia | 341 |
| Africa | Malawi | 308 |
| Africa | Sudan | 299 |
| Africa | Tanzania | 266 |
| Africa | Nigeria | 252 |
| Africa | Burkina Faso | 246 |
| Africa | Niger | 244 |
| Oceania | Papua New Guinea | 226 |
| Africa | Mali | 197 |
| Africa | Cameroon | 151 |
| Africa | Madagascar | 137 |
| North America | Haiti | 102 |
| Africa | South Sudan | 99 |
| Africa | Chad | 93 |
| Asia | Yemen | 90 |
| Africa | Democratic Republic of Congo | 14 |
| Africa | Burundi | 9 |
Dane te zaprezentowałem na wykresie typu box-plot z podziałem na kontynenty.
sum_selected_data %>%
ggplot(aes(continent, mean_nvspm, fill=continent))+
geom_boxplot()+
labs(
title = "Średnia dziena ilości szczepień",
subtitle = paste("Dane z okresu od", min(selected_period),
"do", max(selected_period)),
caption = "M.F.",
fill="Kontynent",
y = "Średnia dzienna liczba szczepień")+
theme(axis.title.x = element_blank())
W zadaniu drugim analizowałem zależność ilości zgonów
total_deaths_per_million w dniu 2021-07-23 od innych
wybranych zmiennych we wszystkich krajach Europy. Do efektywnej
wizualizacji przygotowałem specjalną własna funkcję
PlotSpec1 generująca odpowiedni wykres z możliwością zmiany
skali osi x i/lub y na skalę logarytmiczną dziesiętną. Dodatkowo na
wykresie tym zaznaczyłem odpowiednimi etykietami dane dla Polski oraz
trzech wylosowanych krajów.
selected_data = owid_covid_data_eu %>%
filter(date == selected_date) %>%
mutate(population_aged_70_older = population*aged_70_older/population*1e6)
selected_data %>%
PlotSpec1(selected_locations_eu, population_aged_70_older,
total_deaths_per_million, location, F, F)+
labs(
title = "Zależność pomiędzy ilością zgonów a ilością osób w wieku powyżej 70 lat",
subtitle = paste("Dane na dzień", selected_date),
caption = "M.F.",
x="Ilość osób w wieku powyżej 70 lat na milion mieszkańców",
y = "Ilość zgonów na milion mieszkańców")
Trudno jest dopatrzeć się tu jakiejkolwiek sensownej zależności. Ilość zgonów w przeliczeniu na milion mieszkańców nie zależy od ilości osób w wieku powyżej 70 lat.
selected_data %>%
PlotSpec1(selected_locations_eu, median_age,
total_deaths_per_million, location, F, F)+
labs(
title = "Zależność pomiędzy ilością zgonów a medianą wieku",
subtitle = paste("Dane na dzień", selected_date),
caption = "M.F.",
x="Mediana wieku",
y = "Ilość zgonów na milion mieszkańców")
Również w przypadku mediany wieku trudno jest doprzeć się jakiejś istotnej zależności.
selected_data %>%
PlotSpec1(selected_locations_eu, population_density,
total_deaths_per_million, location, T, F)+
labs(
title = "Zależność pomiędzy ilością zgonów a gęstością zaludnienia",
subtitle = paste("Dane na dzień", selected_date),
caption = "M.F.",
x="Gęstość zaludnienia [log10]",
y = "Ilość zgonów na milion mieszkańców ")
Tak samo jest w przypadku gęstości zaludnienia.
selected_data %>%
PlotSpec1(selected_locations_eu, total_tests_per_thousand,
total_deaths_per_million, location, T, F)+
labs(
title = "Zależność pomiędzy ilością zgonów a liczbą wykonanych testów",
subtitle = paste("Dane na dzień", selected_date),
caption = "M.F.",
x="Ilość wykonanych testów na tysiąc mieszkańców [log10]",
y = "Ilość zgonów na milion mieszkańców")
Wskaźnik zgonów nie zależy także od liczby wykonywanych testów. Uwaga, na wykresie zaznaczone są dane tylko dla jednego kraju. Jest to związane z brakiem danych w pozostałych wylosowanych krajach (również w Polsce) na dzień 2021-07-23.
selected_data %>%
PlotSpec1(selected_locations_eu, total_tests_per_thousand,
new_cases_smoothed_per_million, location, T, T)+
labs(
title = "Zależność pomiędzy ilością nowych przypadków a liczbą wykonanych testów",
subtitle = paste("Dane na dzień", selected_date),
caption = "M.F.",
x="Ilość wykonanych testów na tysiąc mieszkańców [log10]",
y = "Ilość nowych przypadków zachorowań [log10]")
Ilość nowych przypadków także nie jest zależna od liczby wykonywanych testów.
selected_data %>%
PlotSpec1(selected_locations_eu, new_cases_smoothed_per_million,
icu_patients_per_million, location, T, F)+
labs(
title = "Zależność pomiędzy ilością osób hospitalizowanych a liczbą nowych przypadków",
subtitle = paste("Dane na dzień", selected_date),
caption = "M.F.",
x="Ilość nowych przypadków na milion mieszkańców [log10]",
y = "Ilość osób hospitalizownych na milion mieszkańców")
W przypadku zależności pomiędzy ilością osób hospitalizowanych a liczbą nowych przypadków można zauważyć (począwszy od 100 przypadków na milion) niewielki paraboliczny wzrost. Należy jednak pamiętać, że ilości nowych przypadków zostały przedstawione w skali logarytmicznej.
selected_data %>%
PlotSpec1(selected_locations_eu, icu_patients_per_million,
new_deaths_smoothed_per_million, location, T, F)+
labs(
title = "Zależność pomiędzy ilością osób hospitalizowanych a liczbą zgonóW",
subtitle = paste("Dane na dzień", selected_date),
caption = "M.F.",
x="Ilość zgonów milion mieszkańców [log10]",
y = "Ilość osób hospitalizownych na milion mieszkańców")
Bardzo podobnie wygląda zależność ilości hospitalizowanych osób w funkcji ilości zgonów. Występuje tu również niewielka paraboliczna zależność.
W tym zadaniu będę porównywał średnie ilości zgonów w latach 2015 - 2019 z ilościami zgonów w dwóch latach trwania pandemii. Wszystkie wartości przeliczyłem na milion mieszkańców. Należy jednak zwrócić uwagę, że dla szesnastu krajów dane odnośnie zgonów podane są w okresach miesięcznych, natomiast dla pozostałych trzydziestu jeden krajów europejskich dane są zebrane w okresach tygodniowych. Z tego powodu prezentację danych wykonałem osobno dla krajów z raportowaniem miesięcznym a osobno dla krajów z raportowaniem tygodniowym.
country_monthly = excess_mortality_eu %>%
filter(time_unit == "monthly") %>%
distinct(location)
country_weekly = excess_mortality_eu %>%
filter(time_unit == "weekly") %>%
distinct(location)
selected_data = excess_mortality_eu %>%
rename(`2015-19` = average_deaths_2015_2019_all_ages,
`2020` = deaths_2020_all_ages,
`2021` = deaths_2021_all_ages) %>%
pivot_longer(c(`2015-19`, `2020`, `2021`), names_to = "Okres") %>%
filter(!is.na(value)) %>%
left_join(location_population, by="location") %>%
mutate(value = value/population*1e6)
selected_data %>%
filter(location %in% country_weekly$location[1:16]) %>%
ggplot(aes(time, value, color=Okres))+
geom_line()+
scale_x_continuous(breaks = seq(12, 54, 12), labels = seq(12, 54, 12))+
facet_wrap(vars(location))+
labs(
title = "Tygodniowa liczba zgonów",
caption = "M.F.",
x="Nr tygodnia roku",
y = "Ilość zgonów na milion mieszkańców")
selected_data %>%
filter(location %in% country_weekly$location[17:31]) %>%
ggplot(aes(time, value, color=Okres))+
geom_line()+
scale_x_continuous(breaks = seq(12, 54, 12), labels = seq(12, 54, 12))+
facet_wrap(vars(location))+
labs(
title = "Tygodniowa liczba zgonów",
caption = "M.F.",
x="Nr tygodnia roku",
y = "Ilość zgonów na milion mieszkańców")
selected_data %>%
filter(location %in% country_monthly$location) %>%
ggplot(aes(time, value, color=Okres))+
geom_line()+
scale_x_continuous(breaks = seq(3, 12, 3), labels = seq(3, 12, 3))+
facet_wrap(vars(location))+
labs(
title = "Miesięczna liczba zgonów",
caption = "M.F.",
x="Miesiąc",
y = "Ilość zgonów na milion mieszkańców")
selected_data %>%
filter(location == "Poland") %>%
ggplot(aes(time, value, color=Okres))+
geom_line()+
scale_x_continuous(breaks = seq(12, 54, 12), labels = seq(12, 54, 12))+
labs(
title = "Tygodniowa liczba zgonów w Polsce",
caption = "M.F.",
x="Nr tygodnia roku",
y = "Ilość zgonów na milion mieszkańców")
Analizując powyższe wykresy można zauważyć, że bez wątpienia w czasie pandemii średnio umierało więcej osób niż w poprzednich latach. W przypadku wielu krajów szczególnie wyraźne widoczne są okresy wzmożonej intensywności widoczne w formie pików, w czasie których umieralność wzrastała nawet kilkukrotnie. Takiego gwałtownego wzrostu umieralności nie doświadczyły jednak wszystkie kraje. Obroniły się przed tym chociażby Finlandia, Dania, Islandia czy Norwegia. Niestety w naszym kraju przypadły aż trzy takie okresy.
W ostatnim zadania (na podstawie owid_covid_data_eu) dla
Polski oraz wybranych losowo krajów z selected_locations_eu
wykonałem wizualizację wybranych wskaźników w czasie. Na wykresach
zaznaczyłem dni w których w danym kraju osiągnięto maksymalną wartość
badanego wskaźnika.
W celu łatwego wygenerowania wykresu z odpowiednimi etykietami
przygotowałem kolejną własną funkcję PlotSpec2.
owid_covid_data_eu %>%
PlotSpec2(selected_locations_eu, date, new_cases_smoothed_per_million, date)+
labs(
title = "Dzienna liczba nowych przypadków w wybranych krajach",
caption = "M.F.",
color = "Kraj",
x="Data",
y = "Ilość nowych przypadków na milion mieszkańców")
owid_covid_data_eu %>%
PlotSpec2(selected_locations_eu, date, new_deaths_smoothed_per_million, date)+
labs(
title = "Dzienna liczba nowych zgonów w wybranych krajach",
caption = "M.F.",
color = "Kraj",
x="Data",
y = "Ilość nowych zgonów na milion mieszkańców")
owid_covid_data_eu %>%
PlotSpec2(selected_locations_eu, date,
new_people_vaccinated_smoothed_per_hundred, date)+
labs(
title = "Dzienna liczba osób zaszczepionych w wybranych krajach",
caption = "M.F.",
color = "Kraj",
x="Data",
y = "Ilość osób zaszczepionych na milion mieszkańców")
owid_covid_data_eu %>%
mutate(test_to_cases = new_tests_smoothed_per_thousand/new_cases_smoothed_per_million) %>%
PlotSpec2(selected_locations_eu, date, test_to_cases, date)+
labs(
title = "Stosunek dziennej liczby wykonanych testów do dziennej liczby nowych przypadków",
caption = "M.F.",
color = "Kraj",
x="Data",
y = "Liczba testów do liczby nowych przypadków")
Na zakończenie dołączam zawartość pomocniczego skryptu
Funkcje pomocnicze.R W którym zebrałem wszystkie włane
funkcje wykorzystywane w projekcie.
library(kableExtra)
library(tidyverse)
library(readr)
library(scales)
library(ggrepel)
library(lubridate)
#Wizualizacja tabel w HTML
kable1 = function(data, digits=3) data %>% kable(digits = digits) %>%
kable_styling(bootstrap_options =
c("striped", "hover", "condensed", "responsive"))
#Wizualizacja tabel w HTML z przewijaniem
kable2 = function(data, digits=3, height="320px") data %>%
kable1(digits = digits) %>%
scroll_box(width = "100%", height = height)
#Wykres specjalny 1
PlotSpec1 = function(df, sel_location, var_x, var_y, var_lab, x_log10, y_log10){
var_X = enquo(var_x)
var_y = enquo(var_y)
var_lab = enquo(var_lab)
df = df %>% filter(!is.na(!!var_X) & !is.na(!!var_y))
sides = ""
df_max = df %>% filter(location %in% c(sel_location$location, "Poland"))
p = df %>% ggplot(aes(!!var_X, !!var_y, label=!!var_lab))+
geom_point()+
geom_smooth(method = 'loess', formula = 'y ~ x')+
geom_point(data = df_max, shape = 21, size=5, color = "red")+
geom_label_repel(data = df_max, color = "red", box.padding = 1)
if(x_log10){
p = p + scale_x_log10(breaks = trans_breaks("log10", function(x) 10^x),
labels = trans_format("log10", math_format(10^.x)))
sides = paste0(sides, "b")
}
if(y_log10){
p = p + scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x),
labels = trans_format("log10", math_format(10^.x)))
sides = paste0(sides, "l")
}
if(x_log10 | y_log10) p = p + annotation_logticks(sides=sides)
p
}
#Wykres specjalny 2
PlotSpec2 = function(df, sel_location, var_x, var_y, var_lab){
var_X = enquo(var_x)
var_y = enquo(var_y)
var_lab = enquo(var_lab)
df = df %>%
filter(!is.na(!!var_X) & !is.na(!!var_y) &
location %in% c(sel_location$location, "Poland"))
df_max = df %>%
group_by(location) %>%
filter(!!var_y == max(!!var_y))
df %>%
ggplot(aes(!!var_X, !!var_y, color=location, label=paste(!!var_lab)))+
geom_line()+
geom_point(data = df_max, shape=23)+
geom_label_repel(data = df_max, box.padding = 1)
}
`