R 语言几种处理日期并转换成时间序列的例子

编程入门 行业动态 更新时间:2024-10-10 04:25:14

R 语言<a href=https://www.elefans.com/category/jswz/34/1769370.html style=几种处理日期并转换成时间序列的例子"/>

R 语言几种处理日期并转换成时间序列的例子

从文件中提取日期

建议用setwd()为R项目选择一个合适的环境。

#读取working directory目录下的文件dataset。
df1 <- read.table('dataset.txt',header = T)
  • 如果日期格式为20210210(YMD):

    可以这样提取提取YMD格式的数据并输出一个日期格式的对象:
date <- as.Date(as.character(df1$date),"%Y%m%d")
  • 如果日期格式是202002(YM)格式:

    这时候是无法简单地用"%Y%m%d"提取的。可以用lubridate这个package进行日期的提取。
library(lubridate)
#将会把日期从202002转换为20200201并输出一个时间格式的对象
date <- ym(df1$Month)
  • 如果日期被拆成了三个部分,那么:
    -
    可以这样提取数据并输出日期格式的对象。
date <- as.Date(with(df1, paste(Year, mon, day,sep="-")), "%Y-%m-%d")

转换为时间序列

  • 如果已经有日期格式的对象,可以直接用该日期创建时间序列。

date是一个日期格式的对象,df1是需要创建的时间序列对象。

df2 = xts(df1 ,order.by = date)

需要注意到的是,xts生成的时间序列对象,里面的元素将会是统一的。如果df1中有元素不是数值格式的(日期、字符串等),转换为时间序列对象后,df2中所有的元素都会编程字符串格式。这会使得新生成的时间序列对象无法进行绘图以及运算等操作。可以用

as.numeric #转换为数值对象
df1 <- df1[,-2] #删去某一列

等操作进行初步的数据清洗。

  • 如果知道时间起止日期且时间是连续的,可以用ts创建时间序列。
#Vector 是数据集,start&end是起止日期,frequency是频率。
#frequency=(1:年,4:季度,12:月度...)
ts(vector, start=, end=, frequency=)
#例子
myts <- ts(myvector, start=c(2009, 1), end=c(2014, 12), frequency=12)

更多推荐

R 语言几种处理日期并转换成时间序列的例子

本文发布于:2024-02-07 02:54:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1752677.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:几种   序列   例子   日期   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!