library(tidyverse)
library(DT)
library(trendyy) # Package to access google search data
library(lubridate) # Handles dates and times
Assignment: Look up “psychologist” with trendyy.
Using R, with the help of the trendyy package, allows us to explore “Google Trends” data. This data shows us information about how many times a certain term has been searched for over time, for example. In this case, I would like to find out out frequently Google users have searched for the term “psychology”. I will then display this data in the form of a graph, followed by graphs of other related inquiries.
First, I’ll tell R to prepare to show the interest levels in the term “psychologist” (basically, how often it has been searched), and then I can begin to create graphs in R using that data.
psychologist <- trendy("psychologist")
psychologist %>%
get_interest() %>%
- Now I will tell R to display a graph showing the interest in the search term “psychology” across time. The graph shows us that the term has been on an upward trend consistently, with a few periodic pronounced dips. I am curious if there may be a clear explanation somewhere for those dips? That’s a question for another time, though.
psychologist %>%
get_interest() %>%
ggplot(aes(x = date, y = hits)) +
geom_line() +
theme_minimal() +
labs(title = "Google searches for 'psychologist'")

- So, the graph above shows the interest in the search term “psychologist” over time from 2015 to 2020, but what if we want to see more detail? Now I will use R to create a graph of interest over the months. For whatever reason (maybe just coincidence?), it looks like there is a big spike in interest in the term every September.
psychologist %>%
get_interest() %>%
mutate(month = month(date)) %>% # Create a new variable called month
group_by(month) %>% # Combine months across weeks and years
summarize(hits_per_month = mean(hits)) %>% # Average number of searches for each month
ggplot(aes(x = month, y = hits_per_month)) + # graph it
geom_line() +
scale_x_discrete(limits = c(1:12)) +
theme_minimal() +
labs(title = "Google Searches for 'Psychologist' by Month")

- The term Demographic Market Area refers to a set of categories that includes major cities and sometimes lumps them in with neighboring cities to form larger geographic groupings. I would like to see a table of how much interest the search term “psychologist” has generated for each of these Demographic Market Areas. From here, I could use the search box to see that Billings is counted on its own, but that Butte is lumped in with Bozeman.
psychologist_US <- trendy("psychologist", geo = "US", from = "2015-06-01", to = "2019-06-01")
psychologist_US %>%
get_interest_dma() %>%
datatable()
- Now I am curious, how does interest in the term “psychologist” compare when we view it for both the United States, and for Canada, when we see how interest has changed across the months? I will tell R to create a line graph showing both to display this for us. The interesting thing is, the two graph lines both reflect higher interest in September.
psychologist_countries <- trendy("psychologist", geo = c("US", "CA"), from = "2015-01-01", to = "2020-01-01")
psychologist_countries %>%
get_interest() %>%
mutate(month = month(date)) %>%
group_by(month, geo) %>%
summarize(hits_per_month = mean(hits)) %>%
ggplot(aes(x = month, y = hits_per_month, color = geo)) +
geom_line() +
scale_x_discrete(limits = c(1:12)) +
theme_minimal() +
labs(title = "Google Searches for 'Psychologist' and 'Psychiatrist' by Month in US and Canada")

- So, we have taken a look at search interest trends for the term “psychologist,” but what would the graph look like if we also look at interest trends for the term “psychiatrist”? I’ll now tell R to put both of these terms on a graph to track their respective interest levels over time.
psychologist_psychiatrist <- trendy(c("psychologist", "psychiatrist"), geo = "US")
psychologist_psychiatrist %>%
get_interest() %>%
ggplot(aes(x = date, y = hits, color=keyword)) +
geom_line() +
theme_minimal() +
labs(title = "Google Searches for 'Psychologist' and 'Psychiatrist' Over Time")

- Of course, not all Google users are doing a general search–many of them are using Google Images specifically, becaues they are more interested in related images than in related webpages. So, now I am curious, what will the graph look like that displays interest in those same terms, both “psychologist” and “psychiatrist”, but only for those searches conducted with Google Images?
psychologistpsychiatrist_images <- trendy(c("psychologist", "psychiatrist"), gprop = "images")
psychologistpsychiatrist_images %>%
get_interest() %>%
ggplot (aes(x = date, y = hits, color = keyword)) +
geom_line() +
theme_minimal() +
labs(title = "Google Images Searches for 'Psychologist' and 'Psychiatrist' Over Time")

LS0tCnRpdGxlOiAiR29vZ2xlIHRyZW5kcyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoRFQpCmxpYnJhcnkodHJlbmR5eSkgICAgICAgICAgICAgICAgIyBQYWNrYWdlIHRvIGFjY2VzcyBnb29nbGUgc2VhcmNoIGRhdGEKbGlicmFyeShsdWJyaWRhdGUpICAgICAgICAgICAgICAgIyBIYW5kbGVzIGRhdGVzIGFuZCB0aW1lcwpgYGAKCkFzc2lnbm1lbnQ6IExvb2sgdXAgInBzeWNob2xvZ2lzdCIgd2l0aCB0cmVuZHl5LgoKVXNpbmcgUiwgd2l0aCB0aGUgaGVscCBvZiB0aGUgdHJlbmR5eSBwYWNrYWdlLCBhbGxvd3MgdXMgdG8gZXhwbG9yZSAiR29vZ2xlIFRyZW5kcyIgZGF0YS4gVGhpcyBkYXRhIHNob3dzIHVzIGluZm9ybWF0aW9uIGFib3V0IGhvdyBtYW55IHRpbWVzIGEgY2VydGFpbiB0ZXJtIGhhcyBiZWVuIHNlYXJjaGVkIGZvciBvdmVyIHRpbWUsIGZvciBleGFtcGxlLiBJbiB0aGlzIGNhc2UsIEkgd291bGQgbGlrZSB0byBmaW5kIG91dCBvdXQgZnJlcXVlbnRseSBHb29nbGUgdXNlcnMgaGF2ZSBzZWFyY2hlZCBmb3IgdGhlIHRlcm0gInBzeWNob2xvZ3kiLiBJIHdpbGwgdGhlbiBkaXNwbGF5IHRoaXMgZGF0YSBpbiB0aGUgZm9ybSBvZiBhIGdyYXBoLCBmb2xsb3dlZCBieSBncmFwaHMgb2Ygb3RoZXIgcmVsYXRlZCBpbnF1aXJpZXMuIAoKRmlyc3QsIEknbGwgdGVsbCBSIHRvIHByZXBhcmUgdG8gc2hvdyB0aGUgaW50ZXJlc3QgbGV2ZWxzIGluIHRoZSB0ZXJtICJwc3ljaG9sb2dpc3QiIChiYXNpY2FsbHksIGhvdyBvZnRlbiBpdCBoYXMgYmVlbiBzZWFyY2hlZCksIGFuZCB0aGVuIEkgY2FuIGJlZ2luIHRvIGNyZWF0ZSBncmFwaHMgaW4gUiB1c2luZyB0aGF0IGRhdGEuIAoKYGBge3J9CnBzeWNob2xvZ2lzdCA8LSB0cmVuZHkoInBzeWNob2xvZ2lzdCIpCgpwc3ljaG9sb2dpc3QgJT4lIAogIGdldF9pbnRlcmVzdCgpICU+JSAKYGBgCgoKMS4gTm93IEkgd2lsbCB0ZWxsIFIgdG8gZGlzcGxheSBhIGdyYXBoIHNob3dpbmcgdGhlIGludGVyZXN0IGluIHRoZSBzZWFyY2ggdGVybSAicHN5Y2hvbG9neSIgYWNyb3NzIHRpbWUuIFRoZSBncmFwaCBzaG93cyB1cyB0aGF0IHRoZSB0ZXJtIGhhcyBiZWVuIG9uIGFuIHVwd2FyZCB0cmVuZCBjb25zaXN0ZW50bHksIHdpdGggYSBmZXcgcGVyaW9kaWMgcHJvbm91bmNlZCBkaXBzLiBJIGFtIGN1cmlvdXMgaWYgdGhlcmUgbWF5IGJlIGEgY2xlYXIgZXhwbGFuYXRpb24gc29tZXdoZXJlIGZvciB0aG9zZSBkaXBzPyBUaGF0J3MgYSBxdWVzdGlvbiBmb3IgYW5vdGhlciB0aW1lLCB0aG91Z2guIAoKYGBge3J9CnBzeWNob2xvZ2lzdCAlPiUKICBnZXRfaW50ZXJlc3QoKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gZGF0ZSwgeSA9IGhpdHMpKSArCiAgZ2VvbV9saW5lKCkgKwogIHRoZW1lX21pbmltYWwoKSArCiAgbGFicyh0aXRsZSA9ICJHb29nbGUgc2VhcmNoZXMgZm9yICdwc3ljaG9sb2dpc3QnIikKYGBgCgoKMi4gU28sIHRoZSBncmFwaCBhYm92ZSBzaG93cyB0aGUgaW50ZXJlc3QgaW4gdGhlIHNlYXJjaCB0ZXJtICJwc3ljaG9sb2dpc3QiIG92ZXIgdGltZSBmcm9tIDIwMTUgdG8gMjAyMCwgYnV0IHdoYXQgaWYgd2Ugd2FudCB0byBzZWUgbW9yZSBkZXRhaWw/IE5vdyBJIHdpbGwgdXNlIFIgdG8gY3JlYXRlIGEgZ3JhcGggb2YgaW50ZXJlc3Qgb3ZlciB0aGUgbW9udGhzLiBGb3Igd2hhdGV2ZXIgcmVhc29uIChtYXliZSBqdXN0IGNvaW5jaWRlbmNlPyksIGl0IGxvb2tzIGxpa2UgdGhlcmUgaXMgYSBiaWcgc3Bpa2UgaW4gaW50ZXJlc3QgaW4gdGhlIHRlcm0gZXZlcnkgU2VwdGVtYmVyLiAKCmBgYHtyfQpwc3ljaG9sb2dpc3QgJT4lCiAgZ2V0X2ludGVyZXN0KCkgJT4lIAogIG11dGF0ZShtb250aCA9IG1vbnRoKGRhdGUpKSAlPiUgICAgICAgICAgICAjIENyZWF0ZSBhIG5ldyB2YXJpYWJsZSBjYWxsZWQgbW9udGgKICBncm91cF9ieShtb250aCkgJT4lICAgICAgICAgICAgICAgICAgICAgICAgIyBDb21iaW5lIG1vbnRocyBhY3Jvc3Mgd2Vla3MgYW5kIHllYXJzCiAgc3VtbWFyaXplKGhpdHNfcGVyX21vbnRoID0gbWVhbihoaXRzKSkgJT4lICAgICAgIyBBdmVyYWdlIG51bWJlciBvZiBzZWFyY2hlcyBmb3IgZWFjaCBtb250aAogIGdncGxvdChhZXMoeCA9IG1vbnRoLCB5ID0gaGl0c19wZXJfbW9udGgpKSArICAgICMgZ3JhcGggaXQKICBnZW9tX2xpbmUoKSArCiAgc2NhbGVfeF9kaXNjcmV0ZShsaW1pdHMgPSBjKDE6MTIpKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICBsYWJzKHRpdGxlID0gIkdvb2dsZSBTZWFyY2hlcyBmb3IgJ1BzeWNob2xvZ2lzdCcgYnkgTW9udGgiKQoKYGBgCgoKMy4gVGhlIHRlcm0gRGVtb2dyYXBoaWMgTWFya2V0IEFyZWEgcmVmZXJzIHRvIGEgc2V0IG9mIGNhdGVnb3JpZXMgdGhhdCBpbmNsdWRlcyBtYWpvciBjaXRpZXMgYW5kIHNvbWV0aW1lcyBsdW1wcyB0aGVtIGluIHdpdGggbmVpZ2hib3JpbmcgY2l0aWVzIHRvIGZvcm0gbGFyZ2VyIGdlb2dyYXBoaWMgZ3JvdXBpbmdzLiBJIHdvdWxkIGxpa2UgdG8gc2VlIGEgdGFibGUgb2YgaG93IG11Y2ggaW50ZXJlc3QgdGhlIHNlYXJjaCB0ZXJtICJwc3ljaG9sb2dpc3QiIGhhcyBnZW5lcmF0ZWQgZm9yIGVhY2ggb2YgdGhlc2UgRGVtb2dyYXBoaWMgTWFya2V0IEFyZWFzLiBGcm9tIGhlcmUsIEkgY291bGQgdXNlIHRoZSBzZWFyY2ggYm94IHRvIHNlZSB0aGF0IEJpbGxpbmdzIGlzIGNvdW50ZWQgb24gaXRzIG93biwgYnV0IHRoYXQgQnV0dGUgaXMgbHVtcGVkIGluIHdpdGggQm96ZW1hbi4gCgpgYGB7cn0KcHN5Y2hvbG9naXN0X1VTIDwtIHRyZW5keSgicHN5Y2hvbG9naXN0IiwgZ2VvID0gIlVTIiwgZnJvbSA9ICIyMDE1LTA2LTAxIiwgdG8gPSAiMjAxOS0wNi0wMSIpCmBgYAoKYGBge3J9CnBzeWNob2xvZ2lzdF9VUyAlPiUKICBnZXRfaW50ZXJlc3RfZG1hKCkgJT4lCiAgZGF0YXRhYmxlKCkKYGBgCgoKNC4gTm93IEkgYW0gY3VyaW91cywgaG93IGRvZXMgaW50ZXJlc3QgaW4gdGhlIHRlcm0gInBzeWNob2xvZ2lzdCIgY29tcGFyZSB3aGVuIHdlIHZpZXcgaXQgZm9yIGJvdGggdGhlIFVuaXRlZCBTdGF0ZXMsIGFuZCBmb3IgQ2FuYWRhLCB3aGVuIHdlIHNlZSBob3cgaW50ZXJlc3QgaGFzIGNoYW5nZWQgYWNyb3NzIHRoZSBtb250aHM/IEkgd2lsbCB0ZWxsIFIgdG8gY3JlYXRlIGEgbGluZSBncmFwaCBzaG93aW5nIGJvdGggdG8gZGlzcGxheSB0aGlzIGZvciB1cy4gVGhlIGludGVyZXN0aW5nIHRoaW5nIGlzLCB0aGUgdHdvIGdyYXBoIGxpbmVzIGJvdGggcmVmbGVjdCBoaWdoZXIgaW50ZXJlc3QgaW4gU2VwdGVtYmVyLiAKCmBgYHtyfQpwc3ljaG9sb2dpc3RfY291bnRyaWVzIDwtIHRyZW5keSgicHN5Y2hvbG9naXN0IiwgZ2VvID0gYygiVVMiLCAiQ0EiKSwgZnJvbSA9ICIyMDE1LTAxLTAxIiwgdG8gPSAiMjAyMC0wMS0wMSIpCmBgYAoKYGBge3J9CnBzeWNob2xvZ2lzdF9jb3VudHJpZXMgJT4lCiAgZ2V0X2ludGVyZXN0KCkgJT4lIAogIG11dGF0ZShtb250aCA9IG1vbnRoKGRhdGUpKSAlPiUgICAgICAgICAgICAKICBncm91cF9ieShtb250aCwgZ2VvKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAKICBzdW1tYXJpemUoaGl0c19wZXJfbW9udGggPSBtZWFuKGhpdHMpKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBtb250aCwgeSA9IGhpdHNfcGVyX21vbnRoLCBjb2xvciA9IGdlbykpICsKICBnZW9tX2xpbmUoKSArCiAgc2NhbGVfeF9kaXNjcmV0ZShsaW1pdHMgPSBjKDE6MTIpKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICBsYWJzKHRpdGxlID0gIkdvb2dsZSBTZWFyY2hlcyBmb3IgJ1BzeWNob2xvZ2lzdCcgYW5kICdQc3ljaGlhdHJpc3QnIGJ5IE1vbnRoIGluIFVTIGFuZCBDYW5hZGEiKQoKYGBgCgoKNS4gU28sIHdlIGhhdmUgdGFrZW4gYSBsb29rIGF0IHNlYXJjaCBpbnRlcmVzdCB0cmVuZHMgZm9yIHRoZSB0ZXJtICJwc3ljaG9sb2dpc3QsIiBidXQgd2hhdCB3b3VsZCB0aGUgZ3JhcGggbG9vayBsaWtlIGlmIHdlIGFsc28gbG9vayBhdCBpbnRlcmVzdCB0cmVuZHMgZm9yIHRoZSB0ZXJtICJwc3ljaGlhdHJpc3QiPyBJJ2xsIG5vdyB0ZWxsIFIgdG8gcHV0IGJvdGggb2YgdGhlc2UgdGVybXMgb24gYSBncmFwaCB0byB0cmFjayB0aGVpciByZXNwZWN0aXZlIGludGVyZXN0IGxldmVscyBvdmVyIHRpbWUuIAoKYGBge3J9CnBzeWNob2xvZ2lzdF9wc3ljaGlhdHJpc3QgPC0gdHJlbmR5KGMoInBzeWNob2xvZ2lzdCIsICJwc3ljaGlhdHJpc3QiKSwgZ2VvID0gIlVTIikKYGBgCgpgYGB7cn0KcHN5Y2hvbG9naXN0X3BzeWNoaWF0cmlzdCAlPiUKICBnZXRfaW50ZXJlc3QoKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBkYXRlLCB5ID0gaGl0cywgY29sb3I9a2V5d29yZCkpICsKICBnZW9tX2xpbmUoKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICBsYWJzKHRpdGxlID0gIkdvb2dsZSBTZWFyY2hlcyBmb3IgJ1BzeWNob2xvZ2lzdCcgYW5kICdQc3ljaGlhdHJpc3QnIE92ZXIgVGltZSIpCmBgYAoKCjYuIE9mIGNvdXJzZSwgbm90IGFsbCBHb29nbGUgdXNlcnMgYXJlIGRvaW5nIGEgZ2VuZXJhbCBzZWFyY2gtLW1hbnkgb2YgdGhlbSBhcmUgdXNpbmcgR29vZ2xlIEltYWdlcyBzcGVjaWZpY2FsbHksIGJlY2F1ZXMgdGhleSBhcmUgbW9yZSBpbnRlcmVzdGVkIGluIHJlbGF0ZWQgaW1hZ2VzIHRoYW4gaW4gcmVsYXRlZCB3ZWJwYWdlcy4gU28sIG5vdyBJIGFtIGN1cmlvdXMsIHdoYXQgd2lsbCB0aGUgZ3JhcGggbG9vayBsaWtlIHRoYXQgZGlzcGxheXMgaW50ZXJlc3QgaW4gdGhvc2UgIHNhbWUgdGVybXMsIGJvdGggInBzeWNob2xvZ2lzdCIgYW5kICJwc3ljaGlhdHJpc3QiLCBidXQgb25seSBmb3IgdGhvc2Ugc2VhcmNoZXMgY29uZHVjdGVkIHdpdGggR29vZ2xlIEltYWdlcz8KCmBgYHtyfQpwc3ljaG9sb2dpc3Rwc3ljaGlhdHJpc3RfaW1hZ2VzIDwtIHRyZW5keShjKCJwc3ljaG9sb2dpc3QiLCAicHN5Y2hpYXRyaXN0IiksIGdwcm9wID0gImltYWdlcyIpCmBgYAoKYGBge3J9CnBzeWNob2xvZ2lzdHBzeWNoaWF0cmlzdF9pbWFnZXMgJT4lCiAgZ2V0X2ludGVyZXN0KCkgJT4lCiAgZ2dwbG90IChhZXMoeCA9IGRhdGUsIHkgPSBoaXRzLCBjb2xvciA9IGtleXdvcmQpKSArCiAgZ2VvbV9saW5lKCkgKwogIHRoZW1lX21pbmltYWwoKSArCiAgbGFicyh0aXRsZSA9ICJHb29nbGUgSW1hZ2VzIFNlYXJjaGVzIGZvciAnUHN5Y2hvbG9naXN0JyBhbmQgJ1BzeWNoaWF0cmlzdCcgT3ZlciBUaW1lIikKYGBgCgoKCg==