Създайте карта на COVID-19 с помощта на R

Използвайки библиотеката tidyverse, sf и ggspatial, можете да създадете красива карта с помощта на R и ще забележите колко лесно се прави.

Важно е да знаем как се разпространява COVID-19, но за да го информираме, трябва да създадем визуализация за това, за да го направим по-смислено.

Има много инструменти за създаване на статистически анализ, като SAS, SPSS, Minitab и много други. Освен това има много софтуер за извършване на геопространствен анализ, като QGIS, ArcGIS и много други.

Но има проблем. Те не са гъвкави. Това, което имам предвид, е, че не можете да създадете един анализ, без да разчитате на много софтуер, и ако количеството софтуер, с което разполагате, нараства, това ще ви накара да се претоварите. Следователно имаме нужда от алтернатива и R е чудесен вариант.

Това, което прави езика R е толкова страхотно, че е и език за програмиране. Следователно можете да създадете скрипт, за да създадете всичко, което искате.

Освен това това е език за програмиране с отворен код, така че не е нужно да плащате скъп софтуер, за да създадете анализ на данни.

В тази статия ще ви покажа как да създадете карта, която описва разпространението на COVID-19 в провинция Риау, използвайки език R с библиотеки като tidyverse, sf и ggspatial. Ако искате да видите крайния резултат, погледнете тук по-долу,

Процеса

В обобщение, има няколко стъпки, които трябва да направим. Първо, подгответе всички необходими неща, от инсталирането на пакетите до събирането на всички набори от данни, от които се нуждаем. След това обработваме предварително всеки набор от данни и ги комбинираме в един набор от данни. И накрая, визуализираме картата. Без повече, да започваме!

Инсталирайте пакети и изтеглете набора от данни

Преди да влезем в процеса, първо трябва да инсталираме пакетите. Пакетите, от които се нуждаем, са sf за обработка на пространствени данни, tidyverse за манипулиране и анализиране на данните и ggspatial за добавяне на някои подробности към нашата карта. За да го инсталираме и използваме, можем да изпълним тази команда по-долу,

След това трябва да съберем наборите от данни, от които се нуждаем. Първо, това е shp файлът, който съдържа формата на картата, от която се нуждаем. За да го получим, можем да го вземем от уебсайта на GADM тук и можете да изберете кой регион искате. В този случай изтеглям целия shp файл на Индонезия и ще използвам набора от данни от ниво 2, който обхваща всички градове и регентства в провинция Риау.

След като получим shp файла, имаме нужда от набора от данни за COVID-19. За набора от данни, изчерпвам набора от данни от corona.riau.go.id ежедневно и можете да получите набора от данни в моето хранилище на GitHub тук. Ако искате да научите повече за това как изтривам набора от данни и как да го автоматизирам, създадох статия, която можете да прочетете по-долу,



Импортирайте и обработете предварително набора от данни

Продължете напред, след като получим набора от данни, сега нека започнем как да обработим предварително набора от данни. Първо, на shp файла, ще го прочетем с помощта на функцията st_read от sf библиотеката и след това ще го направим в четим формат. След като го прочетем, филтрираме данните, които са в провинция Риау. Кодът изглежда така,

Ето как изглеждат данните,

След това импортираме набора от данни за COVID-19. За да прочетем CSV файла, можем да използваме функцията read_csv от библиотеката tidyverse. След това правим няколко предварителни процеси, започваме от избора на колоната, от която се нуждаем, създаваме нова колона, която изчислява общия брой положителни случаи и накрая трябва да направим промяна на едно регионално име от „Meranti“ на „Kepulauan“ Меранти'. Кодът изглежда така,

И ето как изглеждат данните,

Чакайте, вероятно сте забелязали, че има нещо „%›%“. Не се страхувайте. Това е оператор, наречен pipe. Целта му е да постави вашите предишни данни във функция. Ще бъде полезно, ако имате много функции, които искате да приложите към една променлива. По-късно ще забележите колко е полезно.

Вземете координатите за всеки регион

След като предварително обработим набора от данни, можем да изчислим координатите за всеки регион. Трябва да направим това, защото искаме да поставим броя на случаите с тези координати. За да създадем какво, използваме функцията st_centroid към нашия SHP файл. След това приложете функцията st_coordinates към него и ги запазете като рамка с данни. Кодът изглежда така,

И ето как изглеждат данните,

Комбинирайте набора от данни

Ето основното предимство на R. Той може да комбинира всички набори от данни, въпреки че форматът на данните е различен един от друг. За да направим това, можем да ги комбинираме като рамка с данни с помощта на функцията inner_join. Кодът изглежда така,

Ето един поглед към набора от данни,

Създайте картата

Създаването на карта е доста лесно. Ще използваме пакета ggplot2 за това. Нека първо ви покажа кода.

Както виждаме тук, кодът изглежда като математически израз, но с функции. Пакетът работи на принципа на наслояване. Кодът ще третира всяка функция като слой към нашия график.

От самото начало ще постави функцията ggplot като основна машина за обработка на графиката. След това извиква geom_sf, за да създаде картата и да ги запълни с региона, който я представлява. След това извиква geom_label, за да създаде етикета с параметрите са координатите и самия етикет.

След това извикваме annotation_scale и annotation_north_arrow, за да направим нашия график да изглежда като истинска карта. И след това добавете малко персонализиране към темата, а също и към етикета. Ако изпълним кода, той ще бъде същият, както видяхме на предишната карта, която видяхме.

Заключение

Това е. Ето как да създадете картата на COVID-19 с помощта на R и неговите пакети. Както можете да видите от статията, виждате, че комбинирането на набора от данни и създаването на картата е наистина лесно и ясно.

Не е нужно да използвате какъвто и да е ГИС софтуер, за да създадете картата по този начин и това е чудесна алтернатива, ако искате да анализирате нещата пространствено само с помощта на R език.

R е гъвкав език за програмиране и ако имате много опит в използването му, можете да създадете всичко, което искате, стига да знаете стъпките за това.

Ако искате да разгледате кода от началото до края, ето го,

Благодаря ви, че прочетохте моята статия. Не забравяйте да следвате моя среден акаунт, за да прочетете повече за него. Освен това можете да се свържете с мен в LinkedIn тук.