R语言时间数据处理之lubridate包
在我们处理一些时间序列数据时,经常会碰到各种时间数据,比如“2016-03-03”。很多时候我们需要提取出其中的年、月、日甚至是小时、分、秒,从而可以方便的进行比较、筛选等操作。如果我们自己去实现上述功能,可能会写一个字符串的提取函数,来确定相应的时间单位值。但是,由于时间数据格式多样,总会碰到一些问题。还好lubridate这个包已经帮我实现了各种功能,功能简单但方便快捷,下面进行介绍:
library(lubridate)
返回时间值
首先,lubridate函数的方便之处在于无论年月日之间以什么间隔符分隔,它总能找到正确的值且返回的是数字值,比如:
> year('2016-10-24')
[1] 2016
>year('2016/10/24')
[1] 2016
> month('2016/10/24')
[1] 10>
day('2016/10/24')
[1] 24
我们可以看到,直接用year(),month(),day()函数就可以提取相应的数值,同样的函数还有hour(),minute(),second()等:
> hour('2011-08-10 14:20:01')
[1] 14>
minute('2011-08-10 14:20:01')
[1] 20>
second('2011-08-10 14:20:01')
[1] 1
同时,lubridate还提供了函数帮助处理不同排列顺序的年月日数据:
> ymd('20110604')
[1] '2011-06-04'
> mdy(
在我们处理一些时间序列数据时,经常会碰到各种时间数据,比如“2016-03-03”。很多时候我们需要提取出其中的年、月、日甚至是小时、分、秒,从而可以方便的进行比较、筛选等操作。如果我们自己去实现上述功能,可能会写一个字符串的提取函数,来确定相应的时间单位值。但是,由于时间数据格式多样,总会碰到一些问题。还好lubridate这个包已经帮我实现了各种功能,功能简单但方便快捷,下面进行介绍:
library(lubridate)
返回时间值
首先,lubridate函数的方便之处在于无论年月日之间以什么间隔符分隔,它总能找到正确的值且返回的是数字值,比如:
> year('2016-10-24')
[1] 2016
>year('2016/10/24')
[1] 2016
> month('2016/10/24')
[1] 10>
day('2016/10/24')
[1] 24
我们可以看到,直接用year(),month(),day()函数就可以提取相应的数值,同样的函数还有hour(),minute(),second()等:
> hour('2011-08-10 14:20:01')
[1] 14>
minute('2011-08-10 14:20:01')
[1] 20>
second('2011-08-10 14:20:01')
[1] 1
同时,lubridate还提供了函数帮助处理不同排列顺序的年月日数据:
> ymd('20110604')
[1] '2011-06-04'
> mdy(
