将R非时间序列的data.frame转变为时序格式

Posted Aipeli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将R非时间序列的data.frame转变为时序格式相关的知识,希望对你有一定的参考价值。

将R非时间序列的data.frame转变为时序格式,常常会用到,尤其是股票数据处理中,

举例:
dailyData包括两列数据:
Date Close
10/11/2013 871.99
10/10/2013 868.24
10/9/2013 855.86
10/8/2013 853.67
10/7/2013 865.74
10/4/2013 872.35
10/3/2013 876.09
10/2/2013 887.99
10/1/2013 887
9/30/2013 875.91
9/27/2013 876.39
9/26/2013 878.17
9/25/2013 877.23
9/24/2013 886.84

方法一: xts()
xts(DF$Close, as.Date(DF$Date, format=‘%m/%d/%Y‘)

方法二: ts() ts格式
library(zoo)
> ZOO <- zoo(df$Close, order.by=as.Date(as.character(df$Date), format=‘%m/%d/%Y‘))
> ZOO
2013-09-24 2013-09-25 2013-09-26 2013-09-27 2013-09-30 2013-10-01 2013-10-02 2013-10-03 2013-10-04
886.84 877.23 878.17 876.39 875.91 887.00 887.99 876.09 872.35
2013-10-07 2013-10-08 2013-10-09 2013-10-10 2013-10-11
865.74 853.67 855.86 868.24 871.99
> ts(ZOO) # coercing to be `ts`
Time Series:
Start = 1
End = 14
Frequency = 1
[1] 886.84 877.23 878.17 876.39 875.91 887.00 887.99 876.09 872.35 865.74 853.67 855.86 868.24
[14] 871.99
attr(,"index")
[1] "2013-09-24" "2013-09-25" "2013-09-26" "2013-09-27" "2013-09-30" "2013-10-01" "2013-10-02"
[8] "2013-10-03" "2013-10-04" "2013-10-07" "2013-10-08" "2013-10-09" "2013-10-10" "2013-10-11"

以上是关于将R非时间序列的data.frame转变为时序格式的主要内容,如果未能解决你的问题,请参考以下文章

R:JSON 到 data.frame 的通用展平

使用 RODBC 将 SQL 存储过程结果转换为 data.frame 格式

如何将 XTS 更改为 data.frame 并保留索引?

将 R data.frame 强制转换为 nz.data.frame 时出错

R 中的重塑问题:我重塑的数据框将 3 个变量变为 1 个

在R中将非矩形数据导入为矩形