library(tidyverse)
library(wordcloud2)
library(babynames)
I am using data about baby names from the Social Security Administration. This data has a lot of fun uses, including finding out how popular your name was in the year in which you were born. Below I will filter data from the list to include my birth year, 1989, along with my sex, male, and then filter again by my name, Andrew. I also am telling the computer program R to show the ranking of how popular my name was that year compared to other years. For good measure, I am also showing the percentage of babies who shared my name out of all the other boys.
babynames %>%
filter(year == 1989, sex == "M") %>%
mutate(rank = row_number()) %>%
mutate(percent = round(prop * 100, 1)) %>%
filter(name == "Andrew")
As seen above, in 1989 in the U.S., 34,811 baby boys were named Andrew, or about 1.7 of all baby boys born that year, making it the 7th most popular boy name at the time.
I can also create a word cloud of the most popular baby boy names in 1989. I am including only the top 100 names in this case. I already know my name is going to be on there, because it was ranked 7th, relatively popular.
babynames %>%
filter(year == 1989) %>% # use only one year
filter(sex == "M") %>% # use only one sex
select(name, n) %>% # select the two relevant variables: the name and how often it occurs
top_n(100, n) %>% # use only the top names or it could get too big
wordcloud2(size = .5) # generate the word cloud
Now I want R to show me a line graph of how popular my name has been over the years. Since green is my favorite color, I will make the line green.
babynames %>% # start with the data
filter(name == "Andrew", sex == "M") %>% # choose the name and sex
mutate(percent = round(prop * 100, 1)) %>% # create a new variable called percent
ggplot(aes(x = year, y = percent)) + # put year on the x-axis and prop (proportion) on y
geom_line(color = "green") # make it a line graph and give the line a color

It certainly looks like my name was given to me fairly close to the peak of its popularity. Around 1960, the name Andrew was relatively unpopular, and then it spiked in the 80’s and since then has dropped pretty precipitously. I wonder what my name did wrong to deserve that?
Then again, the graph above is kind of blocky, it’s hard to tell exactly which years my name was at its most popular. I will therefore tell R to create a table listing the 10 years in which my name was most popular.
babynames %>% # Start with the dataset
filter(name == "Andrew", sex == "M") %>% # only look at the name and sex you want
top_n(10, prop) %>% # get the top 10 names
arrange(-prop) # sort in descending order
It looks like my name was most popular in 1987, with a total of 36,204 Andrews born that year. But 1989 wasn’t too far behind, with a still-solid 34,811 Andrews born then.
But I have been focusing a lot on my own name, and I am also curious about the popularity over time of the names of a few of my friends. I would like to see how our names all compare to each other’s. So I am telling R to graph each of our names and assign a different color line to each.
babynames %>%
filter(name == "Nicholas" | name == "Aaron" | name == "Nathan" | name == "Andrew") %>%
filter(sex == "M") %>%
ggplot(aes(x = year, y = n, color = name)) +
geom_line()

Good news for me: my name has reached a higher peak of popularity than those of my friends. Just from taking a quick glance, it looks like each of our names follow a similar trend across time in popularity. This makes sense because we are all pretty close in age to each other, and apparently each of us was given a name pretty consistent with what was popular during our respective birth years.
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHdvcmRjbG91ZDIpCmxpYnJhcnkoYmFieW5hbWVzKQpgYGAKCgoxLiAKCkkgYW0gdXNpbmcgZGF0YSBhYm91dCBiYWJ5IG5hbWVzIGZyb20gdGhlIFNvY2lhbCBTZWN1cml0eSBBZG1pbmlzdHJhdGlvbi4gVGhpcyBkYXRhIGhhcyBhIGxvdCBvZiBmdW4gdXNlcywgaW5jbHVkaW5nIGZpbmRpbmcgb3V0IGhvdyBwb3B1bGFyIHlvdXIgbmFtZSB3YXMgaW4gdGhlIHllYXIgaW4gd2hpY2ggeW91IHdlcmUgYm9ybi4gQmVsb3cgSSB3aWxsIGZpbHRlciBkYXRhIGZyb20gdGhlIGxpc3QgdG8gaW5jbHVkZSBteSBiaXJ0aCB5ZWFyLCAxOTg5LCBhbG9uZyB3aXRoIG15IHNleCwgbWFsZSwgYW5kIHRoZW4gZmlsdGVyIGFnYWluIGJ5IG15IG5hbWUsIEFuZHJldy4gSSBhbHNvIGFtIHRlbGxpbmcgdGhlIGNvbXB1dGVyIHByb2dyYW0gUiB0byBzaG93IHRoZSByYW5raW5nIG9mIGhvdyBwb3B1bGFyIG15IG5hbWUgd2FzIHRoYXQgeWVhciBjb21wYXJlZCB0byBvdGhlciB5ZWFycy4gRm9yIGdvb2QgbWVhc3VyZSwgSSBhbSBhbHNvIHNob3dpbmcgdGhlIHBlcmNlbnRhZ2Ugb2YgYmFiaWVzIHdobyBzaGFyZWQgbXkgbmFtZSBvdXQgb2YgYWxsIHRoZSBvdGhlciBib3lzLiAKCmBgYHtyfQpiYWJ5bmFtZXMgJT4lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBmaWx0ZXIoeWVhciA9PSAxOTg5LCBzZXggPT0gIk0iKSAlPiUgICAgCiAgbXV0YXRlKHJhbmsgPSByb3dfbnVtYmVyKCkpICU+JSAgICAgICAgIAogIG11dGF0ZShwZXJjZW50ID0gcm91bmQocHJvcCAqIDEwMCwgMSkpICU+JSAKICBmaWx0ZXIobmFtZSA9PSAiQW5kcmV3IikgICAgICAgICAgICAgICAKYGBgCgpBcyBzZWVuIGFib3ZlLCBpbiAxOTg5IGluIHRoZSBVLlMuLCAzNCw4MTEgYmFieSBib3lzIHdlcmUgbmFtZWQgQW5kcmV3LCBvciBhYm91dCAxLjcgb2YgYWxsIGJhYnkgYm95cyBib3JuIHRoYXQgeWVhciwgbWFraW5nIGl0IHRoZSA3dGggbW9zdCBwb3B1bGFyIGJveSBuYW1lIGF0IHRoZSB0aW1lLiAKCgoyLiAgCgpJIGNhbiBhbHNvIGNyZWF0ZSBhIHdvcmQgY2xvdWQgb2YgdGhlIG1vc3QgcG9wdWxhciBiYWJ5IGJveSBuYW1lcyBpbiAxOTg5LiBJIGFtIGluY2x1ZGluZyBvbmx5IHRoZSB0b3AgMTAwIG5hbWVzIGluIHRoaXMgY2FzZS4gSSBhbHJlYWR5IGtub3cgbXkgbmFtZSBpcyBnb2luZyB0byBiZSBvbiB0aGVyZSwgYmVjYXVzZSBpdCB3YXMgcmFua2VkIDd0aCwgcmVsYXRpdmVseSBwb3B1bGFyLiAKCmBgYHtyfQpiYWJ5bmFtZXMgJT4lCiAgZmlsdGVyKHllYXIgPT0gMTk4OSkgJT4lICAgICAjIHVzZSBvbmx5IG9uZSB5ZWFyCiAgZmlsdGVyKHNleCA9PSAiTSIpICU+JSAgICAgICAjIHVzZSBvbmx5IG9uZSBzZXgKICBzZWxlY3QobmFtZSwgbikgJT4lICAgICAgICAgICMgc2VsZWN0IHRoZSB0d28gcmVsZXZhbnQgdmFyaWFibGVzOiB0aGUgbmFtZSBhbmQgaG93IG9mdGVuIGl0IG9jY3VycwogIHRvcF9uKDEwMCwgbikgJT4lICAgICAgICAgICAgIyB1c2Ugb25seSB0aGUgdG9wIG5hbWVzIG9yIGl0IGNvdWxkIGdldCB0b28gYmlnCiAgd29yZGNsb3VkMihzaXplID0gLjUpICAgICAgICAgICAgICAgICAjIGdlbmVyYXRlIHRoZSB3b3JkIGNsb3VkCmBgYAoKCjMuIAoKTm93IEkgd2FudCBSIHRvIHNob3cgbWUgYSBsaW5lIGdyYXBoIG9mIGhvdyBwb3B1bGFyIG15IG5hbWUgaGFzIGJlZW4gb3ZlciB0aGUgeWVhcnMuIFNpbmNlIGdyZWVuIGlzIG15IGZhdm9yaXRlIGNvbG9yLCBJIHdpbGwgbWFrZSB0aGUgbGluZSBncmVlbi4gCgpgYGB7cn0KYmFieW5hbWVzICU+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc3RhcnQgd2l0aCB0aGUgZGF0YQogIGZpbHRlcihuYW1lID09ICJBbmRyZXciLCBzZXggPT0gIk0iKSAlPiUgICAgICAjIGNob29zZSB0aGUgbmFtZSBhbmQgc2V4CiAgbXV0YXRlKHBlcmNlbnQgPSByb3VuZChwcm9wICogMTAwLCAxKSkgJT4lICAgICAjIGNyZWF0ZSBhIG5ldyB2YXJpYWJsZSBjYWxsZWQgcGVyY2VudAogIGdncGxvdChhZXMoeCA9IHllYXIsIHkgPSBwZXJjZW50KSkgKyAgICAgICAgICAgIyBwdXQgeWVhciBvbiB0aGUgeC1heGlzIGFuZCBwcm9wIChwcm9wb3J0aW9uKSBvbiB5CiAgZ2VvbV9saW5lKGNvbG9yID0gImdyZWVuIikgICAgICAgICAgICAgICAgICAgICAgIyBtYWtlIGl0IGEgbGluZSBncmFwaCBhbmQgZ2l2ZSB0aGUgbGluZSBhIGNvbG9yCgpgYGAKCkl0IGNlcnRhaW5seSBsb29rcyBsaWtlIG15IG5hbWUgd2FzIGdpdmVuIHRvIG1lIGZhaXJseSBjbG9zZSB0byB0aGUgcGVhayBvZiBpdHMgcG9wdWxhcml0eS4gQXJvdW5kIDE5NjAsIHRoZSBuYW1lIEFuZHJldyB3YXMgcmVsYXRpdmVseSB1bnBvcHVsYXIsIGFuZCB0aGVuIGl0IHNwaWtlZCBpbiB0aGUgODAncyBhbmQgc2luY2UgdGhlbiBoYXMgZHJvcHBlZCBwcmV0dHkgcHJlY2lwaXRvdXNseS4gSSB3b25kZXIgd2hhdCBteSBuYW1lIGRpZCB3cm9uZyB0byBkZXNlcnZlIHRoYXQ/IAoKCjQuICAKClRoZW4gYWdhaW4sIHRoZSBncmFwaCBhYm92ZSBpcyBraW5kIG9mIGJsb2NreSwgaXQncyBoYXJkIHRvIHRlbGwgZXhhY3RseSB3aGljaCB5ZWFycyBteSBuYW1lIHdhcyBhdCBpdHMgbW9zdCBwb3B1bGFyLiBJIHdpbGwgdGhlcmVmb3JlIHRlbGwgUiB0byBjcmVhdGUgYSB0YWJsZSBsaXN0aW5nIHRoZSAxMCB5ZWFycyBpbiB3aGljaCBteSBuYW1lIHdhcyBtb3N0IHBvcHVsYXIuIAoKYGBge3J9CmJhYnluYW1lcyAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBTdGFydCB3aXRoIHRoZSBkYXRhc2V0CiAgZmlsdGVyKG5hbWUgPT0gIkFuZHJldyIsIHNleCA9PSAiTSIpICU+JSAgICAjIG9ubHkgbG9vayBhdCB0aGUgbmFtZSBhbmQgc2V4IHlvdSB3YW50CiAgdG9wX24oMTAsIHByb3ApICU+JSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgdGhlIHRvcCAxMCBuYW1lcwogIGFycmFuZ2UoLXByb3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc29ydCBpbiBkZXNjZW5kaW5nIG9yZGVyCmBgYAoKSXQgbG9va3MgbGlrZSBteSBuYW1lIHdhcyBtb3N0IHBvcHVsYXIgaW4gMTk4Nywgd2l0aCBhIHRvdGFsIG9mIDM2LDIwNCBBbmRyZXdzIGJvcm4gdGhhdCB5ZWFyLiBCdXQgMTk4OSB3YXNuJ3QgdG9vIGZhciBiZWhpbmQsIHdpdGggYSBzdGlsbC1zb2xpZCAzNCw4MTEgQW5kcmV3cyBib3JuIHRoZW4uIAoKCjUuIAoKQnV0IEkgaGF2ZSBiZWVuIGZvY3VzaW5nIGEgbG90IG9uIG15IG93biBuYW1lLCBhbmQgSSBhbSBhbHNvIGN1cmlvdXMgYWJvdXQgdGhlIHBvcHVsYXJpdHkgb3ZlciB0aW1lIG9mIHRoZSBuYW1lcyBvZiBhIGZldyBvZiBteSBmcmllbmRzLiBJIHdvdWxkIGxpa2UgdG8gc2VlIGhvdyBvdXIgbmFtZXMgYWxsIGNvbXBhcmUgdG8gZWFjaCBvdGhlcidzLiBTbyBJIGFtIHRlbGxpbmcgUiB0byBncmFwaCBlYWNoIG9mIG91ciBuYW1lcyBhbmQgYXNzaWduIGEgZGlmZmVyZW50IGNvbG9yIGxpbmUgdG8gZWFjaC4gCgpgYGB7cn0KYmFieW5hbWVzICU+JQogIGZpbHRlcihuYW1lID09ICJOaWNob2xhcyIgfCBuYW1lID09ICJBYXJvbiIgfCBuYW1lID09ICJOYXRoYW4iIHwgbmFtZSA9PSAiQW5kcmV3IikgJT4lIAogIGZpbHRlcihzZXggPT0gIk0iKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0geWVhciwgeSA9IG4sIGNvbG9yID0gbmFtZSkpICsKICBnZW9tX2xpbmUoKQpgYGAKCkdvb2QgbmV3cyBmb3IgbWU6IG15IG5hbWUgaGFzIHJlYWNoZWQgYSBoaWdoZXIgcGVhayBvZiBwb3B1bGFyaXR5IHRoYW4gdGhvc2Ugb2YgbXkgZnJpZW5kcy4gSnVzdCBmcm9tIHRha2luZyBhIHF1aWNrIGdsYW5jZSwgaXQgbG9va3MgbGlrZSBlYWNoIG9mIG91ciBuYW1lcyBmb2xsb3cgYSBzaW1pbGFyIHRyZW5kIGFjcm9zcyB0aW1lIGluIHBvcHVsYXJpdHkuIFRoaXMgbWFrZXMgc2Vuc2UgYmVjYXVzZSB3ZSBhcmUgYWxsIHByZXR0eSBjbG9zZSBpbiBhZ2UgdG8gZWFjaCBvdGhlciwgYW5kIGFwcGFyZW50bHkgZWFjaCBvZiB1cyB3YXMgZ2l2ZW4gYSBuYW1lIHByZXR0eSBjb25zaXN0ZW50IHdpdGggd2hhdCB3YXMgcG9wdWxhciBkdXJpbmcgb3VyIHJlc3BlY3RpdmUgYmlydGggeWVhcnMuIAoK