미국에서 “George Floyd”가 경찰에 의해 살해되면서 촉발된 “Black Lives Matter” 운동은 아프리카계 미국인을 향한 폭력과 제도적 인종주의에 반대하는 사회운동이다. 한국에서도 소수 정당인 정의당에서 여당 의원 176명 중 누가?…차별금지법 발의할 ‘의인’을 구합니다로 기사로 낼 정도로 적극적으로 나서고 있다.
데이터 과학에서 최근 R.A. Fisher의 과거 저술한 “The genetical theory of natural selection” [1] 우생학(Eugenics) 대한 관점2이 논란이 되면서 R 데이터 과학의 첫 데이터셋으로 붓꽃 iris
데이터를 다른 데이터, 즉 펭귄 데이터로 대체하는 움직임이 활발히 전개되고 있다. palmerpenguins
[2] 데이터셋이 대안으로 많은 호응을 얻고 있다.
팔머(Palmer) 펭귄은 3종이 있으며 자세한 내용은 다음 나무위키를 참조한다.3
library(webshot)
webshot(url="https://allisonhorst.github.io/palmerpenguins/", selector = "#meet-the-palmer-penguins > p > img", "fig/penguin-species.png")
다음으로 iris
데이터와 마찬가지로 펭귄 3종을 구분하기 위한 변수로 조류의 부리에 있는 중앙 세로선의 융기를 지칭하는 능선(culmen
) 길이(culmen length)와 깊이(culmen depth)를 이해하면 된다.
library(webshot)
webshot(url="https://allisonhorst.github.io/palmerpenguins/", selector = "#what-are-culmen-length--depth > p:nth-child(4) > img", "fig/penguin-species-variable.png")
leaflet
팩키지로 펭귄 서식지를 남극에서 특정한다. geocoding
을 해야 하는데 구글에서 위치 정보를 구글링하면 https://latitude.to/에서 직접 위경도를 반환하여 준다. 이 정보를 근거로 하여 펭귄 서식지를 시각화한다.
library(tidyverse)
library(leaflet)
library(palmerpenguins)
# library(tidygeocoder)
penguins %>%
count(island)
# A tibble: 3 x 2
island n
<fct> <int>
1 Biscoe 168
2 Dream 124
3 Torgersen 52
island_df <- tribble(~"address", ~"lat", ~"lng",
"Torgersen Island antarctica", -64.7666636, -64.083333,
"Dream Island antarctica", -64.7333304, -64.2333324,
"Biscoe Island antarctica", -65.4333316, -65.499998,
"Palmer Station", -64.774167, -64.053056)
island_df %>%
leaflet() %>%
addProviderTiles(providers$OpenStreetMap) %>%
addMarkers(lng=~lng, lat=~lat,
popup = ~ as.character(paste0("<strong>", paste0("명칭:",`address`), "</strong><br>",
"-----------------------------------------------------------<br>",
"· latitude: ", `lat`, "<br>",
"· longitude: ", `lng`, "<br>"
)))
remotes
팩키지 install_github()
함수로 펭귄 데이터를 설치한다.
tidyverse
팩키지 glimpse()
함수로 펭귄 데이터를 일별한다.
Rows: 344
Columns: 7
$ species <fct> Adelie, Adelie, Adelie, Adelie, Adelie, Adelie, A...
$ island <fct> Torgersen, Torgersen, Torgersen, Torgersen, Torge...
$ bill_length_mm <dbl> 39.1, 39.5, 40.3, NA, 36.7, 39.3, 38.9, 39.2, 34....
$ bill_depth_mm <dbl> 18.7, 17.4, 18.0, NA, 19.3, 20.6, 17.8, 19.6, 18....
$ flipper_length_mm <int> 181, 186, 195, NA, 193, 190, 181, 195, 193, 190, ...
$ body_mass_g <int> 3750, 3800, 3250, NA, 3450, 3650, 3625, 4675, 347...
$ sex <fct> male, female, female, NA, female, male, female, m...
skimr
팩키지를 사용해서 penguins
데이터프레임 자료구조를 일별한다. 이를 통해서 344개 펭귄 관측값이 있으며, 7개 칼럼으로 구성된 것을 확인할 수 있다. 또한, 범주형 변수가 3개, 숫자형 변수가 4개로 구성되어 있다. 그외 더 자세한 사항은 범주형, 숫자형 변수에 대한 요약 통계량을 참조한다.
Name | penguins |
Number of rows | 344 |
Number of columns | 7 |
_______________________ | |
Column type frequency: | |
factor | 3 |
numeric | 4 |
________________________ | |
Group variables | None |
Variable type: factor
skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
---|---|---|---|---|---|
species | 0 | 1.00 | FALSE | 3 | Ade: 152, Gen: 124, Chi: 68 |
island | 0 | 1.00 | FALSE | 3 | Bis: 168, Dre: 124, Tor: 52 |
sex | 11 | 0.97 | FALSE | 2 | mal: 168, fem: 165 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
bill_length_mm | 2 | 0.99 | 43.92 | 5.46 | 32.1 | 39.23 | 44.45 | 48.5 | 59.6 | ▃▇▇▆▁ |
bill_depth_mm | 2 | 0.99 | 17.15 | 1.97 | 13.1 | 15.60 | 17.30 | 18.7 | 21.5 | ▅▅▇▇▂ |
flipper_length_mm | 2 | 0.99 | 200.92 | 14.06 | 172.0 | 190.00 | 197.00 | 213.0 | 231.0 | ▂▇▃▅▂ |
body_mass_g | 2 | 0.99 | 4201.75 | 801.95 | 2700.0 | 3550.00 | 4050.00 | 4750.0 | 6300.0 | ▃▇▆▃▂ |
데이터가 크지 않아 DT
팩키지를 통해 데이터 전반적인 내용을 살펴볼 수 있다.
palmerpenguins
데이터셋 소개에 포함되어 있는 미국 팔머 연구소 (palmer station) 펭귄 물갈퀴(flipper) 길이와 체질량(body mass) 산점도를 그려보자.
1. Fisher RA. The genetical theory of natural selection. Рипол Классик; 1958.
2. KB G, TD W, WR F. Ecological sexual dimorphism and environmental variability within a community of antarctic penguins (genus pygoscelis). PLoS ONE. 2014;9(3):–13. https://doi.org/10.1371/journal.pone.0090081.