Learning Objectives

·       Use the R environment to do data exploration and data preparation.


Submission Information

·       This assignment contributes 5% to the final course grade. The total marks for this assignment is 20.

·       Please ensure that you have written your name and matric number in the document.


1.     This question will be based on the Heart Disease dataset (processed.va.data). The dataset consists of 200 instances, each having 14 numeric attributes. The description of the dataset can be found in ​​http://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/heart-disease.names​​ (Long Beach VA)

a)    Provide the R codes for loading the dataset into a variable heart. The attributes should be given reasonable attribute names based on the description given above. Ensure that all the attributes are of numeric (or integer) type.
(Hint: you should be able to easily convert missing values to be of NA type by using an appropriate function argument) (3 marks)

colnames(heart)=c("age","sex","cp","trestbps","chol","fbs","restecg","thalach","exang","oldpeak","slope","ca","thal","num")



for(i in 1:nrow(heart)){ heart[i,which(heart[i,]=="?")]=NA}

a)    Provide the R codes for getting the number of missing values for each attribute. Fill in the table below. (5 marks)

for(i in 1:ncol(heart)){

sumna[i]=0

for(j in 1:nrow(heart)){

Attribute****

Number of missing values****

age

0

sex

0

cp

0

trestbps

56

chol

7

fbs

7

restecg

0

thalach

53

exang

53

oldpeak

56

slope

102

ca

198

thal

166

num

0

a)    Based on the number of missing values for each attribute, discuss one potential issue if we were to remove instances with one or more missing attributes.
(4 mark)

for(i in 1:nrow(heart)){

sum[i]=0

for(j in 1:ncol(heart)){

if(is.na(heart[i,j])) sum[i]=sum[i]+1;

a)    Instead of removing instances with one or more missing attributes, propose an alternative approach for handling this problem? (4 mark)

for(i in 1:ncol(heart)){

sum[i]=0 ;

for(j in 1:nrow(heart)){

if(is.na(heart[j,i])==FALSE)sum[i]=sum[i]+heart[j,i];

a)    Provide the R codes for generating the correlation matrix for the attributes: age, sex, cp, restecg, num. Show the correlation matrix. (4 mark)

cor(heart[c("age", "sex", "cp", "restecg", "num")])