在Stata编程时,我经常发现自己在编程中使用循环索引。例如,我会遍历所有的变量列表nominalprice和realprice:循环遍历字符串变量R
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 I已经出来做同样的事情的方法是:
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呢。也许我只是没有正确地思考这个问题?你能提出一个更好的方式来使用字符串循环吗?
感谢Jonathon。我喜欢get(i)选项,我会尝试使用它。我使用的数据是虚拟数据,因此可以在数据框中构造。使用数据框会有什么不同? – aTron 2009-11-02 21:59:33
因为这很容易通过字符串访问。假设你有一个名为'nominalprice'的数据框'df'。然后你可以写'df [,“nominalprice”]'来获得该列。 – 2009-11-03 00:09:06