R Language
आंकड़ा अधिग्रहण
खोज…
परिचय
आर सत्र में सीधे डेटा प्राप्त करें। आर की अच्छी विशेषताओं में से एक डेटा अधिग्रहण में आसानी है। आर पैकेज का उपयोग करते हुए कई तरीके के डेटा प्रसार हैं।
अंतर्निहित डेटासेट
R
में निर्मित डेटासेट का एक विशाल संग्रह है। आमतौर पर, उनका उपयोग शिक्षण उद्देश्यों के लिए त्वरित और आसानी से प्रतिलिपि प्रस्तुत करने योग्य उदाहरण बनाने के लिए किया जाता है। अंतर्निहित डेटासेट को सूचीबद्ध करने वाला एक अच्छा वेब-पेज है:
https://vincentarelbundock.github.io/Rdatasets/datasets.html
उदाहरण
स्विस फर्टिलिटी एंड सोशियोकोनोमिक इंडिकेटर्स (1888) डेटा। आइए ग्रामीणता और कैथोलिक आबादी के वर्चस्व के आधार पर प्रजनन क्षमता में अंतर की जाँच करें।
library(tidyverse)
swiss %>%
ggplot(aes(x = Agriculture, y = Fertility,
color = Catholic > 50))+
geom_point()+
stat_ellipse()
पैकेज के भीतर डेटासेट
ऐसे पैकेज हैं जो डेटा शामिल करते हैं या विशेष रूप से डेटासेट को प्रसारित करने के लिए बनाए जाते हैं। जब ऐसा पैकेज लोड किया जाता है ( library(pkg)
), तो संलग्न डेटासेट R ऑब्जेक्ट के रूप में उपलब्ध हो जाते हैं; या उन्हें data()
फ़ंक्शन के साथ बुलाया जाना चाहिए।
Gapminder
देशों के विकास पर एक अच्छा डेटासेट।
library(tidyverse)
library(gapminder)
gapminder %>%
ggplot(aes(x = year, y = lifeExp,
color = continent))+
geom_jitter(size = 1, alpha = .2, width = .75)+
stat_summary(geom = "path", fun.y = mean, size = 1)+
theme_minimal()
विश्व जनसंख्या संभावनाएं 2015 - संयुक्त राष्ट्र जनसंख्या विभाग
आइए देखें कि 1950-2015 में जन्म के समय दुनिया किस तरह पुरुष जीवन प्रत्याशा में परिवर्तित हुई है।
library(tidyverse)
library(forcats)
library(wpp2015)
library(ggjoy)
library(viridis)
library(extrafont)
data(UNlocations)
countries <- UNlocations %>%
filter(location_type == 4) %>%
transmute(name = name %>% paste()) %>%
as_vector()
data(e0M)
e0M %>%
filter(country %in% countries) %>%
select(-last.observed) %>%
gather(period, value, 3:15) %>%
ggplot(aes(x = value, y = period %>% fct_rev()))+
geom_joy(aes(fill = period))+
scale_fill_viridis(discrete = T, option = "B", direction = -1,
begin = .1, end = .9)+
labs(x = "Male life expectancy at birth",
y = "Period",
title = "The world convergence in male life expectancy at birth since 1950",
subtitle = "Data: UNPD World Population Prospects 2015 Revision",
caption = "ikashnitsky.github.io")+
theme_minimal(base_family = "Roboto Condensed", base_size = 15)+
theme(legend.position = "none")
खुले डेटाबेस तक पहुँचने के लिए पैकेज
कुछ डेटाबेस तक पहुँचने के लिए कई पैकेज बनाए गए हैं। उनका उपयोग करना डेटा को पढ़ने / बनाने पर समय का एक गुच्छा बचा सकता है।
यूरोस्टेट
हालांकि eurostat
पैकेज में एक फ़ंक्शन search_eurostat()
, यह सभी प्रासंगिक डेटासेट उपलब्ध नहीं है। यह, यूरोस्टैट वेबसाइट: कंट्री डेटाबेस या रीजनल डेटाबेस में मैन्युअल रूप से डेटासेट के कोड को ब्राउज़ करना अधिक सुविधाजनक है। यदि स्वचालित डाउनलोड काम नहीं करता है, तो डेटा को बल्क डाउनलोड सुविधा के माध्यम से मैन्युअल रूप से पकड़ा जा सकता है।
library(tidyverse)
library(lubridate)
library(forcats)
library(eurostat)
library(geofacet)
library(viridis)
library(ggthemes)
library(extrafont)
# download NEET data for countries
neet <- get_eurostat("edat_lfse_22")
neet %>%
filter(geo %>% paste %>% nchar == 2,
sex == "T", age == "Y18-24") %>%
group_by(geo) %>%
mutate(avg = values %>% mean()) %>%
ungroup() %>%
ggplot(aes(x = time %>% year(),
y = values))+
geom_path(aes(group = 1))+
geom_point(aes(fill = values), pch = 21)+
scale_x_continuous(breaks = seq(2000, 2015, 5),
labels = c("2000", "'05", "'10", "'15"))+
scale_y_continuous(expand = c(0, 0), limits = c(0, 40))+
scale_fill_viridis("NEET, %", option = "B")+
facet_geo(~ geo, grid = "eu_grid1")+
labs(x = "Year",
y = "NEET, %",
title = "Young people neither in employment nor in education and training in Europe",
subtitle = "Data: Eurostat Regional Database, 2000-2016",
caption = "ikashnitsky.github.io")+
theme_few(base_family = "Roboto Condensed", base_size = 15)+
theme(axis.text = element_text(size = 10),
panel.spacing.x = unit(1, "lines"),
legend.position = c(0, 0),
legend.justification = c(0, 0))
प्रतिबंधित डेटा तक पहुंचने के लिए पैकेज
मानव मृत्यु दर डेटाबेस
ह्यूमन मॉर्टेलिटी डेटाबेस मैक्स प्लैंक इंस्टीट्यूट फॉर डेमोग्राफिक रिसर्च की एक परियोजना है जो उन देशों के लिए मानव मृत्यु दर डेटा इकट्ठा और पूर्व-प्रक्रिया करता है, जहां कम या ज्यादा विश्वसनीय आंकड़े उपलब्ध हैं।
# load required packages
library(tidyverse)
library(extrafont)
library(HMDHFDplus)
country <- getHMDcountries()
exposures <- list()
for (i in 1: length(country)) {
cnt <- country[i]
exposures[[cnt]] <- readHMDweb(cnt, "Exposures_1x1", user_hmd, pass_hmd)
# let's print the progress
paste(i,'out of',length(country))
} # this will take quite a lot of time
कृपया ध्यान दें, तर्कों user_hmd
और pass_hmd
मानव मृत्यु डेटाबेस की वेबसाइट पर लॉगिन क्रेडेंशियल हैं। डेटा तक पहुंचने के लिए, किसी को http://www.mortality.org/ पर एक खाता बनाने और readHMDweb()
फ़ंक्शन के लिए अपनी स्वयं की साख प्रदान करने की readHMDweb()
।
sr_age <- list()
for (i in 1:length(exposures)) {
di <- exposures[[i]]
sr_agei <- di %>% select(Year,Age,Female,Male) %>%
filter(Year %in% 2012) %>%
select(-Year) %>%
transmute(country = names(exposures)[i],
age = Age, sr_age = Male / Female * 100)
sr_age[[i]] <- sr_agei
}
sr_age <- bind_rows(sr_age)
# remove optional populations
sr_age <- sr_age %>% filter(!country %in% c("FRACNP","DEUTE","DEUTW","GBRCENW","GBR_NP"))
# summarize all ages older than 90 (too jerky)
sr_age_90 <- sr_age %>% filter(age %in% 90:110) %>%
group_by(country) %>% summarise(sr_age = mean(sr_age, na.rm = T)) %>%
ungroup() %>% transmute(country, age=90, sr_age)
df_plot <- bind_rows(sr_age %>% filter(!age %in% 90:110), sr_age_90)
# finaly - plot
df_plot %>%
ggplot(aes(age, sr_age, color = country, group = country))+
geom_hline(yintercept = 100, color = 'grey50', size = 1)+
geom_line(size = 1)+
scale_y_continuous(limits = c(0, 120), expand = c(0, 0), breaks = seq(0, 120, 20))+
scale_x_continuous(limits = c(0, 90), expand = c(0, 0), breaks = seq(0, 80, 20))+
xlab('Age')+
ylab('Sex ratio, males per 100 females')+
facet_wrap(~country, ncol=6)+
theme_minimal(base_family = "Roboto Condensed", base_size = 15)+
theme(legend.position='none',
panel.border = element_rect(size = .5, fill = NA))