1、读入数据
df <- read.csv("C:/Users/Admin/Documents/R/data_set/taxsamp.csv", header = T, col.names = T)
#显示数据前6行
head(df)
#查看数据结构,str = structure
str(df)
该数据集是某些公司的纳税信息,包括公司编号、申报日期、征收方式、申报渠道和营业额数据。
该数据集共49行5列,公司编号和营业额为数值型数据,其他都为因子型(类别型)数据。
2、通过二维列联表查看类别型数据信息
#查看征收方式与申报渠道之间的信息
library(pacman)
p_load(gmodels)
#gmodels包中的CrossTable函数可以自动生成二维列联表
tb <- CrossTable(df$`征收方式`, df$`申报渠道`, prop.t = F, prop.chisq = F, chisq = T); tb
可以看出:查账征收、定期定额征收、定期定率征收占比分别为63.3%、32.7%和4.1%。大厅申报、网上申报的占比分别为36.7%和63.3%。同时可以看出两种申报方式下三种征收的占比分别为多少。
零假设:征收方式与申报渠道之间独立,即二者没有关系
备择假设:征收方式与申报渠道之间不独立
预设置信区间:0.95
P = 0.1015388 > (1 - 0.95) = 0.05 ,所以不拒绝零假设,即接受二者之间没有关系认定。
3、画申报渠道柱状图
从列联表中可以看出CrossTable的参数prop.row表示按行统计,prop.col表示按列统计,prop.t表示按整个表格统计,所以“申报渠道”的综合信息应该在tb表的prop.t列下面,查看一下:
tb$prop.t
#加载dplyr包(数据整理)和ggplot2包(画图)
p_load(dplyr, ggplot2)
df_qudao <- as.data.frame(tb$prop.t) %>% group_by(y) %>% summarise(ratio = sum(Freq));df_qudao
as.data.frame():将表格转换为数据框
%>%:管道操作符,将左边的输出转化为右边的输入
group_by():将数据按y即申报方式分组
summarise():数据概括,分组后将组内的Freq值求和赋给ratio
最后输出df_qudao
ggplot(df_qudao, aes(y, ratio)) + geom_bar(stat="identity")
将图形稍微美化一下:
ggplot(df_qudao, aes(y, ratio)) + geom_bar(stat="identity", fill = "violetred") + labs(title = "申报渠道对比图", x ="", y = "") + theme(plot.title = element_text(hjust = 0.5))
4、统计各公司的营业总额
p_load(knitr)
df %>% group_by(`公司编号`) %>% summarise(sum = sum(`营业额`)) %>% arrange(sum) %>% rename(`总营业额` = sum) %>% kable(.)