我使用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)
Run Code Online (Sandbox Code Playgroud)
这样做有一种更明智的方式吗?
另外,我如何切片数据,例如,data在一定时期内选择日期中的条目?
G. *_*eck 11
尝试这些方面的东西.这假设日期在第1列中.dyn包可用于转换lm,glm许多类似的回归类型函数可用于接受动物园系列.写dyn$lm代替lm如图所示:
library(dyn) # also loads zoo
fmt <- "%d/%m/%Y"
zapples <- read.zoo('apples.csv', header = TRUE, sep = ",", format = fmt)
zoranges <- read.zoo('oranges.csv', header = TRUE, sep = ",", format = fmt)
zdata <- merge(zapples, zoranges)
dyn$lm(..whatever.., zdata)
Run Code Online (Sandbox Code Playgroud)
您不需要,all = FALSE因为lm在其na.action参数的默认设置下将忽略具有NAs的行.
该window.zoo函数可用于切片数据.
根据您的要求,您可能还需要查看xts和quantmod包.
为什么要将两个数据帧转换为zoo合并并转换回数据帧?如果你想要一个数据框,只需在你的后面运行这一行read.csv().
data <- merge(apples, oranges, by = "date")
Run Code Online (Sandbox Code Playgroud)
以下是如何分组.
subset(data, date < slicemax & date > slicemin)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1795 次 |
| 最近记录: |