【发布时间】:2011-02-11 02:30:58
【问题描述】:
我正在使用 R 对时间序列进行一些统计分析。我试过谷歌搜索,但我似乎找不到任何明确的答案。有谁知道更多请指点我正确的方向吗?
例子:
假设我想做两个时间序列的线性回归。时间序列包含每日数据,但有时可能会有间隙,因此时间序列不规则。自然,我只想比较两个时间序列都有数据的数据点。这是我目前将 csv 文件读入数据框的方法:
library(zoo)
apples <- read.csv('/Data/apples.csv', as.is=TRUE)
oranges <- read.csv('/Data/oranges.csv', as.is=TRUE)
apples$date <- as.Date(apples$date, "%d/%m/%Y")
oranges$date <- as.Date(oranges$date, "%d/%m/%Y")
zapples <- zoo(apples$close,apples$date)
zoranges <- zoo(oranges$close,oranges$date)
zdata <- merge(zapples, zoranges, all=FALSE)
data <- as.data.frame(zdata)
有没有更巧妙的方法?
另外,我如何对数据进行切片,例如,选择data中日期在一定时期内的条目?
【问题讨论】:
-
代码不完全正确,我们没有你的 csv 文件……也许是一些虚拟数据?
-
我修正了代码中的错别字。但我真的看不出虚拟数据的意义。只需获取任何随机数据并将其放入两列 csv 文件中,一列命名为日期,另一列关闭。
-
原因是您的问题不会被认为是低质量的,因此响应者可以轻松运行代码,并且多个响应者都使用相同的输入运行它。由于这是您可以在不知道问题答案的情况下自己做的事情,因此通常认为您有责任提供此内容。
-
是的。但由于我要求最佳实践(我没有任何特殊问题要处理,我只是想知道是否有更直接的方法来实现相同的结果),我真的认为没有必要。任何习惯在 R 中使用时间序列的人都可以了解代码的要点,然后加上他的 0.02 美元。不过还是感谢您的回答。
标签: r time-series