aTr*_*ron 13 statistics r stata
在Stata中编程时,我经常发现自己在编程中使用了循环索引.例如,我将循环遍历变量nominalprice和realprice的列表:
local list = "nominalprice realprice"
foreach i of local list {
summarize `i'
twoway (scatter `i' time)
graph export "C:\TimePlot-`i'.png"
}
Run Code Online (Sandbox Code Playgroud)
这将绘制名义价格和实际价格的时间序列,并导出一个名为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()
}
Run Code Online (Sandbox Code Playgroud)
这个R代码对我来说看起来不直观和混乱,我还没有找到一个很好的方法在R中做这种事情.也许我只是没有以正确的方式思考问题?你能建议一个更好的循环使用字符串的方法吗?
Jon*_*ang 18
正如其他人所暗示的那样,如果你有一个名为nominalprice和列的数据框,这会更容易realprice.如果你不这样做,你可以随时使用get.你根本不需要parse这里.
clist <- c("nominalprice", "realprice")
for (i in clist) {
png(paste("c:/TimePlot-",i,".png"), sep="")
plot(time, get(i))
dev.off()
}
Run Code Online (Sandbox Code Playgroud)