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")