以下是前6个tasks的总结,按照每个task学到的知识罗列:
mydata<-read.csv(file.choose()) #读取csv格式的数据表
edit(mydata) #编辑查看数据表
summary(mydata) #汇总(可查看最小值、最大值、分位数、缺失值)
breaks2<-seq(420,120945,1607) #设置直方图最小值420、最大值120945、间距1607(需整除,得到柱子个数)
hist(mydata$收入,breaks = breaks2,main="收入水平频率直方图",col = "olivedrab", border = "white",
xlab="收入:元",ylab="频率") #绘制频数直方图
hist(mydata$收入,breaks = breaks2, freq= FALSE,
include.lowest = TRUE,right = TRUE,
density =1000, col = "olivedrab", border = "white",
main="收入水平密度直方图",xlab="收入:元",ylab="频率")
#绘制密度直方图,freq=false代表密度直方图,density表示直方图斜杠密度,数值越大越密集
lines(density(mydata$收入)) #绘制密度曲线
boxplot(mydata$收入~mydata$是否按期还款,main="收入水平与是否按时还款箱线图",
xlab="是否按时还款",ylab="收入水平")
#前面的变量是纵坐标,后面的变量是横坐标,自动分类;对比箱线图
install.packages("vcd",destdir = "D:/R_projects")
library(vcd)
counts<-table(mydata$教育水平)
counts
barplot(counts,main="所有贷款人教育水平",xlab="教育水平",ylab="人数",col="grey",
names.arg=c("1","2","3","4"))
#总体条形图(纵坐标不分类统计)如图1;(根据教育水平分四类添加names.arg)
按期还款=with(mydata,
c(sum((是否按期还款==1)[which(教育水平=="1")]),
sum((是否按期还款==1)[which(教育水平=="2")]),
sum((是否按期还款==1)[which(教育水平=="3")]),
sum((是否按期还款==1)[which(教育水平=="4")])))
按期还款
barplot(按期还款,names.arg=c("1","2","3","4"),
main = "按时还款的客户受教育水平条形图",
xlab="教育水平",ylab="人数")
#纵坐标有条件分类统计 如图2;用with组合条件
未按期还款=with(mydata,
c(sum((是否按期还款==0)[which(教育水平=="1")]),
sum((是否按期还款==0)[which(教育水平=="2")]),
sum((是否按期还款==0)[which(教育水平=="3")]),
sum((是否按期还款==0)[which(教育水平=="4")])))
未按期还款
barplot(未按期还款,names.arg=c("1","2","3","4"),
main="未按时还款的客户受教育水平条形图",
xlab="教育水平",ylab="人数")
#纵坐标有条件分类统计 如图3
data_bar=rbind(未按期还款,按期还款)
data_bar
barplot(data_bar,names.arg=c("1","2","3","4"),
main="是否按时还款客户的教育水平分布",
xlab="教育水平",ylab="人数",col=c("olivedrab","darkgrey"))
legend(x="topright",rownames(data_bar),fill=c("olivedrab","darkgrey"))
# rbind()函数组合两个条形图,“,”隔开表示累加,如图4,可比较图1;lengend()用作图例调整
data_per=rbind(未按期还款/是否按期还款_教育水平)
data_per
barplot(data_per,names.arg=c("1","2","3","4"),
main="不同受教育程度的违约用户比例",
xlab="教育水平",ylab="违约比例",col = "olivedrab")
# “/”表示相除,可做比例条形图,如图5;经济意义为违约率