WPS数据清洗+R语言读取文件画频数分布直方图

R语言是一门好语言,但很多人在读取文件中数据时会遇到问题。比如我遇到的问题就是从文件中读取数据后,数据无法用于画图。

检索了N篇博文(抱歉我实在无法一一列举30+篇博文)后,终于看到曙光,事实告诉我学任何一门语言都需要至少投资一本教材(譬如《R语言编程艺术》(美)Norman Matloff著,陈堰平、邱怡轩、潘岚锋 等译)。

下面展示一个栗子:

D市每日接电话报警数已知,求何时警情比较集中?

这明摆着是个统计问题,频数分布直方图就能完美解决。

鉴于并不是所有Office软件都支持直接画频数分布直方图,我想到了大学时代刘苗老师教我们的现代统计软件课——没错,就是R。

R语言在于短小精悍且图形优美,感觉就是统计软件界的python嘛!

下面开始:

1.数据清洗 

为了便于技术分享,我将数据脱敏。去掉接报警详细内容,只保留接报警时间一列:

图片只截取了一部分,日期是从2023-05-01到2023-05-31的,我们统计的是每日接报警集中情况,所以应将日期元素清洗掉。该怎么办呢?

这里康妮猫用了一个比较讨巧的做法:分列

是的,就是WPS自带的分列功能,可以将每一行“日期+时间”的数据拆分开。得到下图:(左列40000多是用WPS自带的格式转换为数据后得到的,右边是我们提取的时间数据)

  将无用的左列删掉,再用WPS自带的格式转换将时间数据转换为小数。

 

2.数据读取

getwd()#获取工作空间地址
setwd("D:/data")#设置工作空间地址

times=read.table("ds2023May.txt")#把WPS里的数据复制粘贴到记事本,读取
typeof(times)#检验数据类型,发现是“list”

times=as.numeric(unlist(times))#这一步非常重要,接下来就可以操作咯

一定要用unlist()函数,否则读取的数据无法用于画图。发现其他方式的小伙伴一定要留言告诉我!

3.画图

hist(times)#这句虽然能出图,但横坐标不对,我们来个操作
hist(times*24)

hist(times*24,xlab="h",ylab="人次",main="XX区5月电话报警峰谷图",sub="制图:Connie",xlim=c(0,25),ylim=c(0,500),col="blue",xaxt="n",yaxt="n")#这句出来个没坐标的图

执行代码,画出无坐标的图(因为我们要个性化坐标: ))

 

 hist(times*24,xlab="h",ylab="人次",main="X区5月电话报警峰谷图",sub="制图:Connie",xlim=c(0,25),ylim=c(0,500),col="blue",xaxt="n",yaxt="n")#
axis(1,a)
axis(2,b)

 如图所示,每日接报警情自6时起至8时不断增加,到中午12至13时有所下降,后上升至19时达到最高后又逐步下降。(我这个分析= =#仅供参考)

4.总结

a.前期数据清洗很重要。不然就会困死在一条代码上拔不出来。要灵活利用WPS自带的功能为我们减少工作负担~(别问我自动化水平降低怎么破,那是大神们的事)

b.画图要循序渐进,不要指望一条代码就解决整张图。

c.unlist()函数很重要,如果实在不知道数据类型就用typeof()查一查,秒懂!

好啦今天的分享就到这里,热爱Coding的你们,再会!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

康妮猫

做一只飞舞在桃花源里的蝶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值