Each of the data sets contains monthly observations on price indices for 7 
countries. I use the fitted values from reg1 in the reg2 model. The interior 
loop executes without error as long as I explicitly specify the data set, i.e. 
data=dat70. However the code fails to execute if I specify the model in the 
form of the commented line, i. e   reg1 <-dynlm(form1,data=Dnames[j])
I get the following error message:


Error in merge.zoo(USA, lag(USA, k = -1), lag(USA, k = -2), lag(Canada,  :

  object 'USA' not found


Apparently the Dnames[j] does not evaluate to the dataset name. Does anyone 
have a solution to my problem?

The values in Names are:

  [1] "Canada"  "France"  "Germany" "Italy"   "Japan"   "UK"      "USA"



And in Dnames are :

 [1] "dat70"   "dat80"   "dat90"   "dat2000"


library(dynlm)
kimdat<-ts(read.csv("data.csv", header = TRUE),start=1970,frequency=12)
dat70 <- window(kimdat,start =c(1970,1), end=c(1979,12))
dat80 <- window(kimdat,start =c(1980,1), end=c(1989,12))
dat90 <- window(kimdat,start =c(1990,1), end=c(1999,12))
dat2000 <- window(kimdat,start =c(2000,1), end=c(2009,12))
Names<-colnames(kimdat)

Dnames <- c("dat70","dat80","dat90","dat2000")
for (j in 1:4) {
         for( i in 7:2) {
       form1<-as.formula(paste(Names[i],"~","lag(",Names[i],",k=-1) + 
lag(",Names[i],",k=-2)+ lag(",Names[1],",k=-1) +lag(",Names[1],",k=-2)"))
       form2<-as.formula(paste(Names[1],"~fitted(reg1)"))

       #  reg1 <-dynlm(form1,data=Dnames[j])
     #  reg2 <-dynlm(form2,data=Dnames[j])

      reg1 <-dynlm(form1,data=dat80)
      reg2 <-dynlm(form2,data=dat80)
     print(summary(reg1))
      print(summary(reg2))
  }
}

Thanks,
Richard Saba

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to