What is the best way to re-write this code into a loop?
a.data1 <- read.csv('outdata1.csv')
growth.sub.QOG1 <- merge(QOG, a.data1, by = c('year', 'country'), all = F)
growth.re1 <- plm(NY.GDP.PCAP.KD.ZG ~ log(Enrolment.in.all.programmes..Tertiary..Total) + law + engineering + log(SP.POP.TOTL) + lp.legor
,data=growth.sub.QOG1, model="random")
summary(growth.re1)
eststo(growth.re1)
a.data2 <- read.csv('outdata2.csv')
growth.sub.QOG2 <- merge(QOG, a.data2, by = c('year', 'country'), all = F)
growth.re2 <- plm(NY.GDP.PCAP.KD.ZG ~ log(Enrolment.in.all.programmes..Tertiary..Total) + law +
engineering + log(SP.POP.TOTL) + lp.legor
,data=growth.sub.QOG2, model="random")
summary(growth.re2)
eststo(growth.re2)
a.data3 <- read.csv('outdata3.csv')
growth.sub.QOG3 <- merge(QOG, a.data3, by = c('year', 'country'), all = F)
growth.re3 <- plm(NY.GDP.PCAP.KD.ZG ~ log(Enrolment.in.all.programmes..Tertiary..Total) + law +
engineering + log(SP.POP.TOTL) + lp.legor
,data=growth.sub.QOG3, model="random")
summary(growth.re3)
eststo(growth.re3)
I tried to do something like this:
for (i in 1:10) {
a.data[i] <- read.csv('outdata[i].csv')
growth.sub.QOG[i] <- merge(QOG, a.data[i], by = c('year', 'country'), all = F)
growth.re[i] <- plm(NY.GDP.PCAP.KD.ZG ~ log(Enrolment.in.all.programmes..Tertiary..Total) + law +
engineering + log(SP.POP.TOTL) + lp.legor
,data=growth.sub.QOG[i], model="random")
summary(growth.re[i])
eststo(growth.re[i])
}
but it didn’t work, what is it that I’m doing wrong?
Construct your file names.
How you structure the rest of your code depends upon whether or not you care about those intermediate variables. I’ve assumed that you do, so you have lots of separate loops. If you don’t care, merge the lapply statements.
Read in the data.
Merge.
Model.
Display some output.