r - 循环 R 中的字符串变量

标签 r statistics 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"
}

这将绘制名义价格和实际价格的时间序列,并导出一个名为 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/

相关文章:

r - 观星者笔记换行?

r - 将模型与dplyr和broom::glance: How to continue if error is produced?进行比较

r - 从 R 中退出并重新启动干净的 R session ?

algorithm - 无放回和负权重的加权抽样

stata - 打开非常大的 Excel 文件

r - 如何从强制下载的链接下载文件

java - 即时计算百分位数

c# - 如何计算协方差矩阵

python - Python 中的函数类似于 Stata 中 egenmore 的 xtile()

r - 如何处理 R 中的多种缺失?