【发布时间】:2017-09-25 07:35:41
【问题描述】:
我正在尝试循环多个时间序列以使用季节性包,虽然代码对于单个系列来说工作得很好,但循环不会继续,我得到这样的结果
i = `i'+1
+ }
+
知道下面的代码有什么问题吗?我将不胜感激任何指针。谢谢。
i=1
while i<=79 {
rm(list=ls()) #clear workspace
sad <- read.dta("C:/esample`i'.dta")
sad <- data.frame(sad)
ts<- lapply(sad,ts,frequency=12, start=1960.1)
l1 <- lapply(ts, function(e) try(seas(e, na.action = na.x13) ))
is.err <- sapply(l1, class) == "try-error"
d_sad <- data.frame(do.call(cbind, lapply(l1[!is.err], final)))
save.image("C:/dsad`i'.RData")
write.dta(d_sad, "X:/dsad`i'.dta")
i = `i'+1
}
【问题讨论】:
-
您删除了索引
i。我怀疑是否有必要在开始时清除工作区;但你可能想 rm(sad, ts, ...) 最后。或者,您可能希望将其包装在一个函数中.. -
Stata (
`i') 的本地语法不会延续到 R。
标签: r loops while-loop