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

简介:

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

3.4 使用日期格式

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

运行原理
完成上一个教程之后,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)的时候,你可能会收到下列报错信息:
screenshot

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

相关文章
|
Java 程序员 云栖大会
9月20日云栖精选夜读 | 如何轻松搞定数据科学面试:Python&R语言篇
对于数据科学家来说,工作的一大部分都需要在交互式编程环境中对数据进行处理、分析和可视化。 在过去几年,R语言和Python成了进行数据科学中最炙手可热的两种语言。这两种语言各有优缺点,掌握这两种语言大有益处,但是针对面试者而言,最好的方式是学习其中一种并熟练掌握。
3088 0
|
数据挖掘 数据库 Python
【R数据科学读书笔记】R语言的数据结构原来可以这样理解
R语言的数据结构原来可以这样理解 这是R数据科学的读书笔记之一,《R数据科学》是一本教你如何用R语言进行数据分析的书。即便我使用R语言快2年多了,但是读这本书还是受益颇多。
1029 0
|
自然语言处理 数据挖掘 Unix
【R数据科学读书笔记】R语言中的管道操作
R语言中的管道操作 这是R数据科学的读书笔记之一,《R数据科学》是一本教你如何用R语言进行数据分析的书。即便我使用R语言快2年多了,但是读这本书还是受益颇多。
1186 0
|
机器学习/深度学习 Python
Python赶超R语言,成为数据科学、机器学习平台中最热门的语言?
近日,kdnuggets做了一个关于数据科学、机器学习语言使用情况的问卷调查,他们分析了954个回答,得出结论——Python已经打败R语言,成为分析、数据科学和机器学习平台中使用频率最高的语言。
1181 0
|
机器学习/深度学习 大数据 物联网