title: "SDS192 HW3 Unisex name" author: "Yi Wang" date: "3/8/2017"

output: oilabs::lab_report

knitr::opts_chunk$set(echo = TRUE)
library(dplyr)
library(ggplot2)
library(oilabs)
library(babynames)

Creating Jessie Plot:

jessie<-babynames%>%
  filter(name=="Jessie",(year > 1930) & (year < 2012))%>%
  group_by(year)%>%
  mutate(prop_gender=n/sum(n))%>%
  arrange(year)
head(jessie)

use another mutate function to find the most unisex year

jessie<-jessie%>%
  mutate(prop_neu=abs(prop_gender-0.5))%>%
  arrange(prop_neu)
head(jessie)
#store and extract the year for plotting use
neu_year <- jessie[[1,1]]
neu_year


jessie_plot<-ggplot(jessie, aes(x=year, y=prop_gender,fill=rev(sex))) + 
  geom_area(stat="identity", position="fill")
jessie_plot<-jessie_plot+
  scale_x_continuous(breaks=seq(1940,2000,20), label=c("1940","'60","'80","2000"))+
  scale_y_continuous(breaks = c(0,1,0.5))+
  scale_fill_manual(values = c("#99CCFF", "#FF99CC"))+
  ggtitle("1.Jessie")+
  theme(text=element_text(size=20,family="AvantGarde"),panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(),axis.title.x=element_blank(),axis.title.y=element_blank()
 ,legend.position="none")


jessie_plot+geom_point(data=subset(jessie, year==neu_year))+
  geom_text(data=subset(jessie,year==neu_year),aes(label="Most unisex year", hjust=0.2,vjust=3,size=4))+
  annotate("text",x=1990,y=0.7, label= "BOYS",size=10,col="white") + 
  annotate("text",x=1990,y=0.3,  label = "GIRLS",size=10,col="white")

calculate the 35 most unisex names

babynames <- babynames %>%
  mutate(popular = prop > 0.0009)
babynames <- babynames %>%
  rename(is_popular = popular)
popular <- babynames %>%
  filter(is_popular)%>%
  filter(year>1930)%>%
  group_by(year,name)%>%
  mutate(prop_gender=n/sum(n))%>%
  mutate(prop_neu=abs(prop_gender-0.5))
nrow(popular)
head(popular)

babynames_copy <-
  popular%>%
  filter(year>1930)%>%
  group_by(year,name)%>%
  mutate(prop_gender=n/sum(n))%>%
  mutate(prop_neu=abs(prop_gender-0.5))%>%
  group_by(name)%>%
  summarise(prop_neu_over_year=mean(prop_neu))%>%
  arrange(prop_neu_over_year)

temp<-babynames_copy[1:35,1]
top_list<-as.vector(t(temp))
top_list



most_neu_name_year <- function(name_arg) {

  popular%>%
  filter(name==name_arg,year>=1930)%>%
  group_by(year)%>%
  mutate(prop_gender=n/sum(n))%>%
  mutate(prop_neu=abs(prop_gender-0.5))%>%
  arrange(prop_neu)%>%
    head(1)%>%
    select(year)
    }
top_year<-lapply(top_list,FUN= most_neu_name_year)%>%
  bind_rows()

clean_popular<-popular[popular$name %in% top_list ,]

really don't know how to plot 35 graphs...I'm gussing make a list of all name and make facet graph. So I stop here since I'm struggling with facet graph.

Built With

Share this project:

Updates