• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

《数据科学:R语言实现》——3.4 使用日期格式

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本节书摘来自华章出版社《数据科学:R语言实现》一 书中的第3章,第3.4节,作者:R for Data Science Cookbook 丘祐玮(David Chiu),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 使用日期格式

把每一个数据属性转换成合适的数据类型之后,我们可以看到employees和salaries中的一些属性是日期类型的。因此,我们可以计算雇员的出生日期和当前日期之间的年份数,进而得出每个雇员的年龄。这里我们会介绍如何使用内置日期函数和lubridate程序包来操作日期格式的数据。
准备工作
按照之前的教程,把导入数据的每个属性转换成正确的数据类型。并且,你需要按照3.2节“重命名数据变量”中的步骤,命名employees和salaries数据集的列名。
实现步骤
执行下列步骤,使用employees和salaries中的日期格式数据。
1.我们可以使用下列代码,加上或者减去日期格式属性中的一些天数:


运行原理
完成上一个教程之后,employees数据和salaries数据应该完成了重命名,每一个属性也应该转换成了合适的数据类型。由于一些属性是日期类型的,我们可以使用日期函数来计算属性之间的时间间隔。
日期类型的数据支持算术运算,我们可以加上或减去一些天数。因此,我们首先展示了可以给hire_date加上30天。然后我们可以检查一下受雇日期是否真的加了30天。然后,我们可以计算birth_date属性和hire_date属性之间以天为单位的时间间隔,进而找出雇员开始在公司工作时的年龄。然而,减法操作只能告诉我们天数间隔,我们需要更多计算方法,支持除天数以外的时间间隔度量。所以,我们可以使用函数difftime确定不同单位下的时间间隔(例如,小时、天和周)。虽然difftime提供了更多的度量选择,但我们还需要更多计算来得到以月和年为单位的时间间隔。
为了简化日期计算,我们可以使用便捷的日期运算程序包lubridate。因为数据是年-月-日的格式,我们首先可以使用函数ymd把数据转换成POSIX格式。然后,我们可以使用区间函数计算hire_date和birth_date之间的时间跨度。接着,我们可以使用函数as.period计算时间跨度的长度。这可以让我们使用函数year获取每一个雇员生日和受雇日之间的年份数。
最后,为了计算雇员的年龄,我们可以使用函数now获取当前时间。然后,使用interval获取雇员生日和当前日期之间的时间区间。利用这些信息,我们最终可以使用函数year获取雇员的真实年龄。
更多技能
在使用lubridate程序包(版本1.3.3)的时候,你可能会收到下列报错信息:

这个报错信息是由于本地配置问题而产生的。你可以通过设定locale为English_United States.1252来解决:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言绘图:时间序列分析发布时间:2022-07-18
下一篇:
R语言做多元线性回归发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap