This is the solution of R programming HW1
library(psych)
#head(ability)
ability<-as.data.frame(ability)
letter<-data.frame(ability$letter.7,ability$letter.33,ability$letter.34,ability$letter.58)
sum(apply(apply(letter,1,is.na),2,sum)>3)
[1] 32
which(letter[,1]==1&letter[,2]==1&letter[,3]==0&letter[,4]==0)
[1] 115 142 173 222 240 307 433 472 484 488 490 526 541 621
[15] 623 661 664 698 717 731 734 754 777 789 949 1053 1135 1180
[29] 1188 1215 1225 1262 1284 1379 1392 1409 1411 1412 1423 1461 1484 1520
[43] 1525
apply(na.omit(letter),2,mean)
ability.letter.7 ability.letter.33 ability.letter.34 ability.letter.58
0.6387049 0.6055923 0.6475350 0.4760854
apply(na.omit(letter),2,sd)
ability.letter.7 ability.letter.33 ability.letter.34 ability.letter.58
0.4805527 0.4889030 0.4779137 0.4996116
cor((na.omit(letter)))
ability.letter.7 ability.letter.33 ability.letter.34
ability.letter.7 1.0000000 0.3489880 0.3909802
ability.letter.33 0.3489880 1.0000000 0.3721343
ability.letter.34 0.3909802 0.3721343 1.0000000
ability.letter.58 0.3274363 0.2779009 0.3208773
ability.letter.58
ability.letter.7 0.3274363
ability.letter.33 0.2779009
ability.letter.34 0.3208773
ability.letter.58 1.0000000
cor(letter,use="complete.obs",method="pearson")
ability.letter.7 ability.letter.33 ability.letter.34
ability.letter.7 1.0000000 0.3489880 0.3909802
ability.letter.33 0.3489880 1.0000000 0.3721343
ability.letter.34 0.3909802 0.3721343 1.0000000
ability.letter.58 0.3274363 0.2779009 0.3208773
ability.letter.58
ability.letter.7 0.3274363
ability.letter.33 0.2779009
ability.letter.34 0.3208773
ability.letter.58 1.0000000
b<-read.table('baseball.dat',h=F)
colnames(b)<-c('Salary','BattingAve','OBP','nRun','nHit','nDouble','nTriple','nHome','nRBI','nWalk','nStrikeout','nStolen','nError','FAE','FA','AE','AI','Name')
sa <- cut(b$Salary, breaks = c(0,150,200,250,300,350,400,Inf),labels = c("below150","below200","below250","below300","below350","below400","above400"))
pie(table(sa),labels=levels(sa),main="Pie Chart of Salary",col=c("red","orange3","yellow2","darkgreen","skyblue","violet","gray"),radius = 1, cex =1)
#According to Wikipedia, AVG=H/AB
AB<-b$nHit/b$BattingAve
plot(b$Salary~AB, ylab="Salary")
abline(v = mean(AB), lty = 2, col = 2)
abline(h = mean(b$Salary),lty=2, col=4)
text(425,5000,labels=paste("mean AB=",round(mean(AB),2)),col=2)
text(100,2000,labels=paste("Salary=",round(mean(b$Salary),2)),col=4)
hist(b$Salary[b$FAE==1],xlab="FAE=1")
hist(b$Salary[b$FAE==0],xlab="FAE=0")
plot(AB[b$FAE==1],b$Salary[b$FAE==1],main="FAE==1",xlab="AB",ylab="Salary")
plot(AB[b$FAE==0],b$Salary[b$FAE==0],main="FAE==0",xlab="AB",ylab="Salary")