[R] simple graph question: manipulating variable names
Jim Lemon
jim at bitwrit.com.au
Wed Aug 26 12:40:32 CEST 2009
Donald Braman wrote:
> This is a simple problem that has stumped me: I'm trying to loop through a
> few dozen variable names in graphs. I've tried various approaches like
> this:
> attach(mydata)
> ivs <- c("oneiv", "anotheriv", "yetanotheriv")
> dvs <- c("onedv", "anotherdv", "yetanotherdv")
> for (iv in ivs) {
> for (dv in dvs) {
> graphname <- paste(iv, dv, ".png", sep = "")
> png(file=graphname, width=300, height=300)
> plot(dv ~ iv, pch=".")
> lines(loess.smooth(iv, dv), lty=1)
> dev.off()
> }
> }
>
> Clearly that doesn't work. I'm not sure how to make R see the iv and dv
> strings as variables. Advice?
>
>
Hi Donald,
I think the problem is that you are trying to plot the strings that you
are using for your filename rather than the elements of "mydata". Try this:
for(ivindex in 1:3) {
for(dvindex in 1:3) {
graphname<-paste(iv[ivindex],dv[dvindex],".png",sep="")
png(graphname,width=300,height=300)
plot(mydata[,3*iv-dv-1],mydata[,3*iv-dv],pch=".")
lines(loess.smooth(mydata[,3*iv-dv-1],mydata[,3*iv-dv],lty=1)
dev.off()
}
}
remembering that I have made up the indexing of "mydata" out of thin
air. You will have to work out how to index the columns or rows of
"mydata" to get the right iv and dv for each pass of the loops.
Jim
More information about the R-help
mailing list