在Stata编程中,我经常会使用循环索引变量。例如,我将对名为nominalprice和realprice的变量列表进行循环:
When programming in Stata I often find myself using the loop index in the programming. For example, I'll loop over a list of the variables nominalprice and 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中做这种事情的好方法。也许我没有以正确的方式考虑这个问题?你能提供一种更好的使用字符串循环的方法吗?
df
,其中有一列名为nominalprice
。那么你只需写df[,"nominalprice"]
就可以获取该列。 - Jonathan Chang