1

CptS 475/575: Data Science, Fall 2020

Assignment 2: R Basics and Exploratory Data Analysis

Release Date: September 4, 2020 Due Date: September 11, 2020 (11:59 pm)

This assignment has two exercises. For questions that ask you to produce a specific plot, include

that plot along with the code you used to generate it. You are strongly encouraged to use R

Markdown to prepare your solution. Be sure to clearly number each response in line with the

questions, and give each plot appropriate axis labels and title.

1. This exercise relates to the College data set, which can be found in the file College.csv on the

course’s public webpage (https://scads.eecs.wsu.edu/index.php/datasets/). The dataset contains a

number of variables for 777 different universities and colleges in the US. The variables are

• Private : Public/private indicator

• Apps : Number of applications received

• Accept : Number of applicants accepted

• Enroll : Number of new students enrolled

• Top10perc : Percentage of new students from top 10% of high school class

• Top25perc : Percentage of new students from top 25% of high school class

• F.Undergrad : Number of full-time undergraduates

• P.Undergrad : Number of part-time undergraduates

• Outstate : Out-of-state tuition

• Room.Board : Room and board costs

• Books : Estimated book costs

• Personal : Estimated personal spending

• PhD : Percent of faculty with Ph.D.’s

• Terminal : Percent of faculty with terminal degree

• S.F.Ratio : Student/faculty ratio

• perc.alumni : Percent of alumni who donate

• Expend : Instructional expenditure per student

• Grad.Rate : Graduation rate

Before reading the data into R or Python, you can view it in Excel or a text editor. For each of

the following questions, include the code you used to complete the task as your response, along

with any plots or numeric outputs produced. You may omit outputs that are not relevant (such as

dataframe contents), but still include all of your code.

(a) Use the read.csv() function to read the data into R, or the csv library to read in the

data with python. In R you will load the data into a dataframe. In python you may store it as a list

of lists or use the pandas dataframe to store your data. Call the loaded data college. Ensure that

your column headers are not treated as a row of data.

2

(b) Find the median cost of books for all schools in this dataset.

(c) Produce a scatterplot that shows a relationship between two numeric (not factor or

boolean) features of your choice in the dataset. Ensure it has appropriate axis labels and a title.

(d) Produce a histogram showing the overall enrollment numbers (P.Undergrad plus

F.Undergrad) for both public and private (Private) schools. You may choose to show both on a

single plot (using side by side bars) or produce one plot for public schools and one for private

schools. Ensure whatever figures you produce have appropriate axis labels and a title.

(e) Create a new qualitative variable, called Top, by binning the Top10perc variable into

two categories (Yes and No). Specifically, divide the schools into two groups based on whether

or not the proportion of students coming from the top 10% of their high school classes exceeds

75%.

Now produce side-by-side boxplots of the schools' acceptance rates (based on Accept and Apps)

for each of the two Top categories. There should be two boxes on your figure, one for top

schools and one for others. How many top universities are there?

(f) Continue exploring the data, producing two new plots of any type, and provide a brief

(one to two sentence) summary of your hypotheses and what you discover. Feel free to think

outside the box on this one but if you want something to point you in the right direction, look at

the summary statistics for various features, and think about what they tell you. Perhaps try

plotting various features from the dataset against each other and see if any patterns emerge.

2. This exercise involves the Auto.csv data set found on the course website. The features of the

dataset are as follows:

• mpg: miles per gallon

• cylinders: number of cylinders

• displacement: volume of air displaced by cylinders

• horsepower: power of the car (rate of work)

• weight: how much the car weighs in lb

• acceleration: rate at which car accelerates

• year: when the car was made

• origin: where the car comes from (1=USA, 2=Germany, 3=Japan)

• name: the make and model of the car

Make sure that rows with missing values have been removed from the data. For part, show both

the code you used and any relevant outputs.

(a) Specify which of the predictors are quantitative (DEFINE), and which are qualitative

(DEFINE)? Keep in mind that a qualitative variable may be represented as a quantitative type in

the dataset, or the reverse. You may wish to adjust the types of your variables based on your

findings.

(b) What is the range, mean and standard deviation of each quantitative predictor?

3

(c) Now remove the 40th through 80th (inclusive) observations from the dataset. What is

the range, mean, and standard deviation of each predictor in the subset of the data that remains?

(d) Using the full data set, investigate the predictors graphically, using scatterplots,

correlation scores or other tools of your choice. Create a correlation matrix for the relevant

variables.

(e) Suppose that we wish to predict gas mileage (mpg) on the basis of the other variables.

Which, if any, of the other variables might be useful in predicting mpg? Justify your answer

based on the prior correlations.