首页 > 解决方案 > R:可变长度不同

问题描述

我正在尝试基于时间序列分析创建一个线性模型,如下所示:

模型 1 = novice_crash ~ time + grad + time.after + month

我有以下代码创建上面有问题的变量:

grad<- c(replicate(66,0),replicate(30,1))
grad<- ts(grad, start=c(2002,1), frequency=12)

time<- seq(1,96, by=1)
time<- ts(time,start=c(2002,1), frequency = 12)

time.after<- c(replicate(66,0),replicate(30,1))
time.after<- ts(time.after, start=c(2002,1), frequency = 12)

#month<- seasonaldummy(novice_crashes)
month<-time

grad.lag1<- lag(grad)

time.after.lag1<- lag(time.after)

'novice_crashes' 是来自以下代码的 ts 对象(其中 'crashes' 是 csv 文件

novice<- crash$novice_crash
total<- crash$total_crash
novice_crashes<-ts(novice, start = c(2002,12), end=c(2009,12), frequency = 12)

当我尝试运行它时,model1<- lm(novice_crashes ~ time + grad + time.after + month)我收到以下错误:

Error in model.frame.default(formula = novice_crashes ~ time + grad + : variable lengths differ (found for 'time')

我检查了时间长度、毕业时间、时间长度和月份长度(都是 96 个单位长)。

数据集crash存在 NA,但我删除了

crash<- na.omit(crash)

我更习惯于 python,所以我可能在这里遗漏了一些东西......

标签: rtime-serieslm

解决方案


enter code here我同意 MrFlick 的评论。但是从你所说的你没有检查变量的长度novice_crashesstart = c(2002,12)由于与其他时间序列 ( ) 相比,此时间序列开始较晚 ( start = c(2002,1))。也许有问题。

让我知道这是否是问题所在,否则请发布可重现的示例。


推荐阅读