在 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 中做这种事情的好方法。也许我只是没有以正确的方式思考问题?你能建议一种更好的使用字符串循环的方法吗?
最佳答案
正如其他人所暗示的那样,如果您有一个包含名为 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()
}
关于r - 循环 R 中的字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1663370/