Всі імена взяті із заяв на отримання карток соціального страхування для дітей, які народилися в США після 1879 року. Зверніть увагу, що багато людей, народжених до 1937 року, ніколи не зверталися за карткою соціального страхування, тому їхні імена не включені в дані.
Задля конфіденційності, якщо ім’я зустрічається менше 5 разів за рік у певному штаті, такі записи виключені з вибірки.
Усі дані взяті зі 100% вибірки записів про заяви на отримання карток соціального страхування станом на березень 2022 року.
library(tidyverse)library(vroom)# Завантаження даних безпосередньо з Інтернетуdata_url <-"https://raw.githubusercontent.com/Aranaur/aranaur.rbind.io/main/datasets/babynames/names.zip"local_filename <-"babynames.zip"if (!file.exists(local_filename)) { # якщо дані існують, не завантажувати зновуdownload.file(data_url, local_filename, mode ="wb")}data_files <-unzip(local_filename, junkpaths =TRUE, exdir =tempdir())babynames <-list()for (i in data_files) { df <-vroom(i, col_names =c("Name", "Sex", "Count"), show_col_types =FALSE) %>%mutate(Year =str_match(i, "yob(\\d{4})\\.txt")[, 2] %>%as.numeric()) babynames <-bind_rows(babynames, df)}
import pandas as pdimport urllib.requestimport os.pathimport zipfile# Завантажуємо дані безпосередньо з інтернетуdata_url ="https://raw.githubusercontent.com/Aranaur/aranaur.rbind.io/main/datasets/babynames/names.zip"local_filename ="babynames.zip"ifnot os.path.exists(local_filename): # якщо дані існують, не завантажувати зновуwith urllib.request.urlopen(data_url) as resp, open(local_filename, 'wb') as f: f.write(resp.read())babynames = [] with zipfile.ZipFile(local_filename, "r") as zf: data_files = [f for f in zf.filelist if f.filename[-3:] =="txt"]def extract_year_from_filename(fn):returnint(fn[3:7])for f in data_files: year = extract_year_from_filename(f.filename)with zf.open(f) as fp: df = pd.read_csv(fp, names=["Name", "Sex", "Count"]) df["Year"] = year babynames.append(df)babynames = pd.concat(babynames)