And Live From New York, It's 42 Years of Saturday Nights:

A Look At Saturday Night Live and Its Rising Political Influence

For the last forty-two years, people all over the globe have been changing their televisions sets over to NBC as soon as the clocks in New York City stuck midnight. Here they hoped to watch their favorite celebrities, musicians, and budding comedians dress up in wigs and costumes and crack wise with one another. After that first night in October of 1975, Saturday Night Live has been a powerhouse of creating comedic canon. Whether it was the coneheads, two wild and crazy guys, or Christopher Walken's fever that could only be abated with a little more cowbell, Saturday Night Live has served as a great cauldron of laughs. Beyond its own immediate public appeal, the show has served as a jumping-off point for generations of actors. The collective entertainment garnered by the careers of Will Ferrel, Amy Poehler, Chevy Chase, Mike Myers, and hundreds of others whose careers began in studio 8H proves the show's massive influence in the world of entertainment media. Clearly, the show has had huge impacts on pop culture, but more recently, Saturday Night Live has been under a critical lens to determine the other aspects of contemporary life that it can affect.

The show has always relied on parody and satire of current events as bountiful sources for comedy. However, at what point does the comedic representation become a precision instrument for the expression and criticism of political thought? Can a comedy show be a serious player in shaping national perceptions of individuals and ideas? These are some of the questions that Kathryn Brownell investigated in her article “The Historical Presidency: Gerald Ford, Saturday Night Live, and the Development of the Entertainer in Chief.” She discusses how presidents have used the show in what she calls “performative politics,” using entertainment media to shape public sentiment and perceptions of political processes and offices. As soon as the second year of the show, people already recognized its potential as a tool of political expression and communication. The viewership and presentation of the show allowed for a more informal and therefore more trustworthy avenue for politicians to communicate with their constituents. Though this did benefit Gerald Ford, it had the unintended result of establishing Saturday Night Live as a force of political commentary.

This complicates the shows role in society, as occasionally it can become difficult for viewers to parse out when the show is being genuine about political news, when it is being strictly comedic, and when it is serving as a fusion of news and comedy. This has become especially apparent in more recent years as politicians have become even more visible, often serving in similar capacities as a celebrity. This has made them the target of satire and criticism, and it is not always clear to what degree they are being given a fair representation. One especially popular political impersonation on the show over the last few years in Sarah Palin. Her opinions, public statements, and visual similarity to show veteran Tina Fey provided much material for the writers of the show. Jason Peifer highlights the potential impacts that this murky political representation can have in her article “Palin, Saturday Night Live, and Framing: Examining the Dynamics of Political Parody.” She illustrates that these parodies play a strong role in “creating political realities.” The show has evolved from simply a reflection on current states of affairs into a dynamic force in shaping the political reality.

As previously mentioned, however, it is key to note that the realities that are shaped by the show are not always objective, representative, or equally degrading. While initially, Gerald Ford used it intentionally as a piece of media to shape perceptions about him, it now defines public personalities without their permission and often in a negative light. Nickie Wild in “Dumb vs. Fake: Representations of Bush and Palin on Saturday Night Live and Their Effects on the Journalistic Public Sphere” points out that the show can be a source of information for voters, despite the fact that it may never communicate with the people it is representing. Under the guise of comedy, Saturday Night Live is able to selectively and subjectively educate people about their politicians and political culture. With its rising power to influence this nation's political consciousness, it seems more important that ever to approach its producers and its consumers with a critical and analytical investigation.

Research Question and General Thesis

It was this potential for selective education that piqued my interest in studying the show. Clearly it has a lot of potential to impact the political climate. This has led to two distinct methods of exploratory analysis of show. The first method surrounds individual actors, given their ability to represent political figures, culture, and their role in shaping the show’s direction, I was curious who the most prolific and central individuals are who have been involved with Saturday Night Live. Has SNL’s culture stayed true to a few influential founders, or are more recent cast members more important in influencing the show as it evolves over time? The second is how the show as a whole has shifted in its reception over time. When has the show been received well, and when has it been received poorly? As we have seen, there has been an increase in political parody in more recent years, and has this increase been viewed positively or negatively by viewers, and what does this say about how people feel about representations of politics in recent years?

As a result of my investigation to the scholarly work, as well as my own experience watching the show, I theorized that Saturday Night Live is the most relevant today as it has ever been. With the increasing role that comedy and satire have played in the political process, I believe that ratings will reflect this in recent years, especially among young people, who have grown up in an age of digital accessibility that makes SNL skits easy to find, and political dissatisfaction. Given the abundance of episodes and skits, however, I was unsure if the actors who have done political impressions would be the most influential to the show. I think that analysis of the actors will demonstrate that the more recent ones will be the most relevant, interacting with current cast members, and older ones who are coming back as hosts.

Loading Packages and Data

Going in, I was unsure of exactly what data packages I was going to be using. I knew that I was most probably going to need ggplot2, a package used for producing more nuanced graphics, as well as igraph, a package used for creating networks from data. It never hurts to have more functionality and more options for visualization.

In [1]:
Warning message:
“package ‘HistData’ was built under R version 3.2.5”Warning message:
“package ‘reshape’ was built under R version 3.2.5”Warning message:
“package ‘ggplot2’ was built under R version 3.2.5”Warning message:
“package ‘rgdal’ was built under R version 3.2.5”Loading required package: sp
Warning message:
“package ‘sp’ was built under R version 3.2.5”rgdal: version: 1.2-5, (SVN revision 648)
 Geospatial Data Abstraction Library extensions to R successfully loaded
 Loaded GDAL runtime: GDAL 2.1.2, released 2016/10/24
 Path to GDAL shared files: 
 Loaded PROJ.4 runtime: Rel. 4.9.1, 04 March 2015, [PJ_VERSION: 491]
 Path to PROJ.4 shared files: (autodetected)
WARNING: no proj_defs.dat in PROJ.4 shared files
 Linking to sp version: 1.2-3 
Warning message:
“package ‘rgeos’ was built under R version 3.2.5”rgeos version: 0.3-23, (SVN revision 546)
 GEOS runtime version: 3.4.2-CAPI-1.8.2 r3921 
 Linking to sp version: 1.2-4 
 Polygon checking: TRUE 

Warning message:
“package ‘maptools’ was built under R version 3.2.5”Checking rgeos availability: TRUE

Attaching package: ‘igraph’

The following object is masked from ‘package:rgeos’:


The following objects are masked from ‘package:stats’:

    decompose, spectrum

The following object is masked from ‘package:base’:


Loading required package: XML
Loading required package: Rook

I downloaded the data from a website called Kaggle, a site that runs competitions for digital models, where users can post and download any number of different data sets. The original data came in six different files and so each one had to be read in individually, hence the six different commands and the six different data frames.

In [2]:
actor_type <- read.csv(file="snl_actor_title.csv",
actor <- read.csv(file="snl_actor.csv",
episode <- read.csv(file="snl_episode.csv",
season <- read.csv(file="snl_season.csv",
rating <- read.csv(file="snl_rating.csv",
title <- read.csv(file="snl_title.csv",
1 24 1976073116 Kris Kristoffersonhost
42 13 2017020411 Alessia Cara music
6 13 1981041115 DeDi cast
6 13 1981041115 RoDu cast
6 13 1981041115 GaMa cast
42 13 2017020412 Kristen Stewart host
Kris KristoffersonKris Kristofferson0
Alessia Cara Alessia Cara 0
DeDi Denny Dillon 1
RoDu Robin Duke 1
GaMa Gail Matthius 1
Kristen Stewart Kristen Stewart 0
1 1975
2 1976
3 1977
4 1978
5 1979
6 1980
7 20 1981 May 22, 1982 Olivia Newton-John
6 13 1980 April 11, 1981
42 13 2016 February 4, 2017 Kristen Stewart
1 24 1975 July 31, 1976 Kris Kristofferson
2 1 1976 September 18, 1976Lily Tomlin
1 23 1975 July 24, 1976 Louise Lasser
6 13 0 4 0 0 1 0 2 10 7.80 NA 7.9 5 7.711 7.6 197.8
3 20 0 7 0 2 1 3 4 14 6.90 NA 7.1 7 7.316 7.4 237.0
3 19 1 9 0 0 2 1 3 11 7.30 NA 7.6 8 7.410 7.7 217.5
7 19 0 3 0 0 0 3 5 4 6.70 NA 7.3 3 7.712 6.9 127.5
7 20 1 8 0 0 0 2 2 4 7.80 NA 7.6 5 8.112 7.5 187.7
1 1 3 62 3 4 2 28 25 55 7.41 9 7.652 7.643 7.51467.6
7 20 1982052216 Goodnights
1 24 1976073116 "I've Got a Life of My Own"Musical Performance
42 13 2017020413 Goodnights
6 13 1981041116 Goodnights
42 13 2017020411 "River Of Tears" Musical Performance
6 13 1981041115 Bag Lady Film

The next steps appear a little redundant, as I needed to merge the separate data frames into one. This became a problem, because the different elements of the data frames would either be needed or an obstacle to the ultimate visualizations and argumentation I used. For my network analysis, I wanted the names of every actor in each episode, causing repeats for actors who appeared in multiple episodes. While necessary for the network, I needed to use different iterations of my data further on when I stepped back to just look at episodes and seasons.

Luckily, however, the data that I downloaded came pre cleaned, free from missing values and NAs, so there was no need to do any sort of NA removal or data cleaning of my own.

The first thing that I wanted to do with the data was a network exploration of all of the different actors involved with Saturday Night Live. To do this, I needed to combine the "episode", "actor type", and "rating" data frames. I wanted a data frame where each row represented an actor in a particular episode, so that I could create a network of people that had starred in episodes together. As a part of the visualization, I wanted to potentially include the rating of specific episodes, as well what kinds of actors (hosts, cast members, musical guests) were more important to the show. Each new "total" is the introduction of an additional data frame, merging them by season and episode, common columns in most of the data frames.

Finally, I decided to include the "actor" data frame, because while "actor_type" had the majority of the information I wanted, such as episodes and seasons, it represented the actors by abbreviations of their names, less helpful for visualizing. I then subsetted the data to have it ordered chronologically by season and then episode.

In [14]:
rating <- rating[order(rating$sid, rating$eid), ]
total <- merge(episode, rating, by=c("sid", "eid"))
total <- merge(total, actor_type, by=c("sid", "eid"))
total <- merge(total, actor, by= "aid")
total <- total[order(total$sid, total$eid), ]
890AkYo 1 1 1975 October 11, 1975 George Carlin 3 62 3 4 52 7.6 43 7.5 146 7.6 1975101118 crew Akira Yoshimura 0
1106AlFr 1 1 1975 October 11, 1975 George Carlin 3 62 3 4 52 7.6 43 7.5 146 7.6 1975101120 cast Al Franken 1
1203AlFr 1 1 1975 October 11, 1975 George Carlin 3 62 3 4 52 7.6 43 7.5 146 7.6 1975101124 cast Al Franken 1
1484AlZw 1 1 1975 October 11, 1975 George Carlin 3 62 3 4 52 7.6 43 7.5 146 7.6 1975101120 cast Alan Zweibel 1
2365Andy Kaufman 1 1 1975 October 11, 1975 George Carlin 3 62 3 4 52 7.6 43 7.5 146 7.6 197510116 guest Andy Kaufman 0
3732AuPD 1 1 1975 October 11, 1975 George Carlin 3 62 3 4 52 7.6 43 7.5 146 7.6 1975101120 crew Audrey Peart Dickman0
  1. 'crew'
  2. 'cast'
  3. 'guest'
  4. 'music'
  5. 'filmed'
  6. 'host'
  7. 'cameo'
  8. 'unknown'

Immediately we can see some repetitions in the data frame, there are two rows of Al Franken for the first episode of the first season. This highlighted a problem that I was going to experience in using the "total" data frame for the nodes of the network. Not only would small errors like the one that produced the double Franken create errors, but I hadn't previously realized that I would have multitudes of repeat nodes. I ran the function unique to find out all of the different "actorType" options there were: crew, cast, guest, music, filmed, host, cameo, and unknown. Problems of repeat performances immediately become clear. Justin Timberlake has been both a host and musical guest. Some cast members have been cast, crew, guest, and host. Because of these overlaps, which would cause problems in having a node attribute of actor type, because some people have multiple, I decided that for the network, I was only going to look at specific actors’ names, hence the creation below of a new character vector that only has each person's name once.

In [15]:
vertices <- unique(total[ ,c("name")])
  1. 'Akira Yoshimura'
  2. 'Al Franken'
  3. 'Alan Zweibel'
  4. 'Andy Kaufman'
  5. 'Audrey Peart Dickman'
  6. 'Billy Preston'

After creating the data frame for the nodes, I now needed to create one for the edges of my network. The following code was the first step, taken from the code that Professor Hall used to create the costarring network for actors in movies that had been nominated for best picture. Initially it seemed like it would be impossible, because unlike the movies, episodes do not have unique names. Luckily and somewhat unexpectedly the column "aired" which represents the date that each episode aired has a unique character representation for each episode in the form of a day, a month, and a year. Using this, and the unique names of actors, I changed the for loop to create a hit whenever an actor had appeared in a new aired episode, creating an edge between every actor that had costarred in an episode together.

In [16]:
trueEdges <- list()
actors <- unique(total$name)
episodes <- unique(total$aired)
for (i in 1:length(episodes)){
  hits <- which(total$aired == episodes[i])
  subsetnodes <- unique(total$name[hits])
  rating <- unique(total$US.users_avg[hits])
  newedges <- data.frame()
  if (length(hits) > 1){
    for (x in 1:length(subsetnodes)){
      if (x != length(subsetnodes)){
        miniset <- data.frame(S = subsetnodes[x], Target=subsetnodes[-c(1:x)], Episode=episodes[i], Rating=rating,
                              stringsAsFactors = FALSE)
        newedges <- rbind(newedges, miniset)
    newedges <- data.frame(S=total$name[hits], Target="", Episode=episodes[i], Rating=rating, stringsAsFactors = FALSE)
  trueEdges[[i]] <-
edge_df <- rbind.fill(trueEdges)
Warning message:
“package ‘plyr’ was built under R version 3.2.5”
Attaching package: ‘plyr’

The following objects are masked from ‘package:reshape’:

    rename, round_any

Once the data frames had been created for both the nodes and the edges, I used the igraph package to create a network of all the SNL actors. In the next section of code, I create the network, set a layout for the nodes, and create a visual representation of Saturday Night Live contributors of the last forty-two years.

In [17]:
g=graph_from_data_frame(edge_df, vertices, directed=FALSE)
IGRAPH UN-- 2135 165259 -- 
+ attr: name (v/c), Episode (e/c), Rating (e/n)
+ edges (vertex names):
 [1] Akira Yoshimura--Al Franken           Akira Yoshimura--Alan Zweibel        
 [3] Akira Yoshimura--Andy Kaufman         Akira Yoshimura--Audrey Peart Dickman
 [5] Akira Yoshimura--Billy Preston        Akira Yoshimura--Chevy Chase         
 [7] Akira Yoshimura--Clifford Einstein    Akira Yoshimura--Dan Aykroyd         
 [9] Akira Yoshimura--Don Pardo            Akira Yoshimura--Garrett Morris      
[11] Akira Yoshimura--George Coe           Akira Yoshimura--George Carlin       
[13] Akira Yoshimura--Gilda Radner         Akira Yoshimura--Jacqueline Carlin   
[15] Akira Yoshimura--Jane Curtin          Akira Yoshimura--Janis Ian           
+ ... omitted several edges
In [49]:
lout <- layout.fruchterman.reingold(g)
plot.igraph(g, layout = lout, asp = 0, vertex.size = 5, vertex.label.cex = 0.5)