Я не вижу, что особенно не так с вашим исходным решением, кроме того, что я не знаю, почему вы используете функцию eval () Это не кажется мне необходимым.
Вы также можете использовать функцию применения, например, lapply. Вот рабочий пример. Я создал фиктивные данные как zoo()
временной ряд (это не обязательно, но так как вы все равно работаете с данными временных рядов):
# x <- some time series data
time <- as.Date("2003-02-01") + c(1, 3, 7, 9, 14) - 1
x <- zoo(data.frame(nominalprice=rnorm(5),realprice=rnorm(5)), time)
lapply(c("nominalprice", "realprice"), function(c.name, x) {
png(paste("c:/TimePlot-", c.name, ".png", sep=""))
plot(x[,c.name], main=c.name)
dev.off()
}, x=x)