在 Stata 中编程时,我经常发现自己在编程中使用循环索引。例如,我将遍历变量nominalprice 和realprice 的列表:
local list = "nominalprice realprice"
foreach i of local list {
summarize `i'
twoway (scatter `i' time)
graph export "C:\TimePlot-`i'.png"
}
这将绘制名义价格和实际价格的时间序列,并导出一个名为 TimePlot-nominalprice.png 的图表和另一个名为 TimePlot-realprice.png 的图表。
在 R 中,我想出的做同样事情的方法是:
clist <- c("nominalprice", "realprice")
for (i in clist) {
e <- paste("png(\"c:/TimePlot-",i,".png\")", sep="")
eval(parse(text=e))
plot(time, eval(parse(text=i)))
dev.off()
}
这个 R 代码对我来说看起来不直观和混乱,我还没有找到在 R 中做这种事情的好方法。也许我只是没有以正确的方式思考这个问题?你能建议一种更好的使用字符串循环的方法吗?