This is an R notebook.

clev = read.csv("ClevelandHeart.csv")
dim(clev)
[1] 303  12
mean(clev$Age)
[1] 54.43894
mean(clev[,1])
[1] 54.43894
clev[1,]
mean(clev[1,])
[1] NA
clev[1,3]
[1] "typical"
clev[1,1:5]
clev[1,c(1,3,5)]
clev[1:4,c(1,3,5)]

Summary Statistics

mean(clev$Age)
[1] 54.43894
median(clev$Age)
[1] 56
sd(clev$Age)
[1] 9.038662
IQR(clev$Age)
[1] 13
dim(clev)
[1] 303  12
length(clev$Age)
[1] 303
sum(clev$Age)
[1] 16495
max(clev$Age)
[1] 77
min(clev$Age)
[1] 29
z = clev$Age
z <- clev$Age
mean(clev$Age)
[1] 54.43894

Plots

hist(clev$Age,xlab="years",ylab="number patients",main="Figure 1",breaks=20)

boxplot(clev$Age)

boxplot(Age ~ Sex, data=clev)

plot(clev$Age, clev$RestBP,xlab="years",ylab="mm Hg")

Extracting subsets

z = clev[1:5,1:3]
z
z$Age > 60
[1]  TRUE  TRUE  TRUE FALSE FALSE
sum(z$Age > 60)
[1] 3
mean(z$Age > 60)
[1] 0.6
over60 = z[z$Age>60,]
over60
z$ChestPain == "asymptomatic"
[1] TRUE TRUE TRUE TRUE TRUE
z
z[z$ChestPain=="asymptomatic",]
mean(over60$Age)
[1] 65.32911
mean(asyCP$Age)
[1] 55.72222
over60andASY = clev[(clev$Age>60) & (clev$ChestPain=="asymptomatic"),]
mean(clev$Fluoroscopy,na.rm=T)
[1] 0.6722408
sum(is.na(clev$Fluoroscopy))
[1] 4
which(is.na(clev$Fluoroscopy))
[1] 167 193 288 303
clevx = na.omit(clev)
dim(clevx)
[1] 297  12
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVGhpcyBpcyBhbiBSIG5vdGVib29rLgoKYGBge3J9CmNsZXYgPSByZWFkLmNzdigiQ2xldmVsYW5kSGVhcnQuY3N2IikKZGltKGNsZXYpCmBgYAoKYGBge3J9Cm1lYW4oY2xldiRBZ2UpCmBgYAoKYGBge3J9Cm1lYW4oY2xldlssMV0pCmBgYAoKYGBge3J9CmNsZXZbMSxdCmBgYApgYGB7cn0KbWVhbihjbGV2WzEsXSkKYGBgCmBgYHtyfQpjbGV2WzEsM10KYGBgCgoKYGBge3J9CmNsZXZbMSwxOjVdCmBgYAoKYGBge3J9CmNsZXZbMSxjKDEsMyw1KV0KYGBgCgpgYGB7cn0KY2xldlsxOjQsYygxLDMsNSldCmBgYAoKU3VtbWFyeSBTdGF0aXN0aWNzCgpgYGB7cn0KbWVhbihjbGV2JEFnZSkKYGBgCgpgYGB7cn0KbWVkaWFuKGNsZXYkQWdlKQpzZChjbGV2JEFnZSkKSVFSKGNsZXYkQWdlKQpgYGAKCmBgYHtyfQpkaW0oY2xldikKbGVuZ3RoKGNsZXYkQWdlKQpgYGAKCmBgYHtyfQpzdW0oY2xldiRBZ2UpCm1heChjbGV2JEFnZSkKbWluKGNsZXYkQWdlKQpgYGAKCmBgYHtyfQp6ID0gY2xldiRBZ2UKeiA8LSBjbGV2JEFnZQpgYGAKCmBgYHtyfQptZWFuKGNsZXYkQWdlKQpgYGAKClBsb3RzCgpgYGB7cn0KaGlzdChjbGV2JEFnZSx4bGFiPSJ5ZWFycyIseWxhYj0ibnVtYmVyIHBhdGllbnRzIixtYWluPSJGaWd1cmUgMSIsYnJlYWtzPTIwKQpgYGAKCmBgYHtyfQpib3hwbG90KGNsZXYkQWdlKQpgYGAKCmBgYHtyfQpib3hwbG90KEFnZSB+IFNleCwgZGF0YT1jbGV2KQpgYGAKCmBgYHtyfQpwbG90KGNsZXYkQWdlLCBjbGV2JFJlc3RCUCx4bGFiPSJ5ZWFycyIseWxhYj0ibW0gSGciKQpgYGAKCkV4dHJhY3Rpbmcgc3Vic2V0cwoKYGBge3J9CnogPSBjbGV2WzE6NSwxOjNdCnoKYGBgCgpgYGB7cn0KeiRBZ2UgPiA2MApgYGAKCmBgYHtyfQpzdW0oeiRBZ2UgPiA2MCkKYGBgCgpgYGB7cn0KbWVhbih6JEFnZSA+IDYwKQpgYGAKCmBgYHtyfQpvdmVyNjAgPSB6W3okQWdlPjYwLF0Kb3ZlcjYwCmBgYAoKYGBge3J9CnokQ2hlc3RQYWluID09ICJhc3ltcHRvbWF0aWMiCmBgYAoKYGBge3J9CnoKYGBgCgpgYGB7cn0Kelt6JENoZXN0UGFpbj09ImFzeW1wdG9tYXRpYyIsXQpgYGAKCmBgYHtyfQpvdmVyNjAgPSBjbGV2W2NsZXYkQWdlPjYwLF0KYXN5Q1AgPSBjbGV2W2NsZXYkQ2hlc3RQYWluPT0iYXN5bXB0b21hdGljIixdCmBgYAoKYGBge3J9Cm1lYW4ob3ZlcjYwJEFnZSkKYGBgCgpgYGB7cn0KbWVhbihhc3lDUCRBZ2UpCmBgYAoKYGBge3J9Cm92ZXI2MGFuZEFTWSA9IGNsZXZbKGNsZXYkQWdlPjYwKSAmIChjbGV2JENoZXN0UGFpbj09ImFzeW1wdG9tYXRpYyIpLF0KYGBgCiAgCmBgYHtyfQptZWFuKGNsZXYkRmx1b3Jvc2NvcHksbmEucm09VCkKYGBgCgpgYGB7cn0Kc3VtKGlzLm5hKGNsZXYkRmx1b3Jvc2NvcHkpKQpgYGAKCmBgYHtyfQp3aGljaChpcy5uYShjbGV2JEZsdW9yb3Njb3B5KSkKYGBgCgpgYGB7cn0KY2xldnggPSBuYS5vbWl0KGNsZXYpCmRpbShjbGV2eCkKYGBgCgo=