[R] pdf filenames in while loop

Wesley Roberts
Wed, 20 Aug 2008 10:37:45 -0000

Dear R users,

I am a remote sensing researcher currently studying the use of LiDAR data for
quantifying tree height, in particular I would like to determine the sample size
needed to capture and quantify canopy height variability. To do this I have
employed the use of automap(), which automatically calculates variograms
including reporting the range of the variogram. The program is easy to use and I
have had much success with it. However, I have run into a  slight problem. My
analysis consists of 60 independent plots located in our study area and I wish
to run the variogram analyses for each plot and then write the resulting plot to
a pdf file. Given that I have 60 plots I would like to vary the name of each
file based on the plot being processed, see my code below. I have tried a number
of different approaches using the paste() command but cant seem to get it to
work.

Currently, as.character does not seem to solve the problem

pdf(file="as.character(paste(f.mat[a])).pdf")

alternatively I could write out to JPEG but I would rather not take that
approach or I could write all pdf plots to one file but I am not sure how to do
this.

Could someone suggest a solution?

I am using R version 2.7.1 (2008-06-23) on Ubuntu 7.10.

Many thanks,
Wesley





library(gstat)
library(automap)

## List of files to be used in the while loop

files <- read.table("files.txt")
f.mat <- as.matrix(files)

## start loop here with a as the control

a=1
while(a <= 60)
{

	d <- read.csv(paste(f.mat[a]), header=TRUE, sep=",")
	coordinates(d) = ~dbl_1+dbl_2
	variogram = autofitVariogram(dbl_5~1,d, model = c("Sph"),
fix.values=c(NA,NA,NA), verbose = FALSE)

	print(variogram)
	print(variogram$var_model$psill[1])
	print(variogram$var_model$range[2])
	p <- plot(variogram, main="Semi-variogram (Spherical Model)",
sub=paste("Range: ",variogram$var_model$range[2]))
	print(p)

	pdf(file="as.character(paste(f.mat[a])).pdf")
	plot(p, main="Semi-variogram (Spherical Model)",
sub=paste("Range: ",variogram$var_model$range[2]))
	dev.off()
	a=a+1

}


Wesley Roberts MSc.
Researcher
Natural Resources and the Environment (Earth Observation)
CSIR
Tel: +27 (31) 242-2353
Fax: +27 (31) 261-1216
http://ffp.csir.co.za/

"To know the road ahead, ask those coming back."
- Chinese proverb

--
This message is subject to the CSIR's copyright terms and conditions, e-mail
legal notice, and implemented Open Document Format (ODF) standard.
The full disclaimer details can be found at
http://www.csir.co.za/disclaimer.html.

This message has been scanned for viruses and dangerous content by MailScanner,
and is believed to be clean.  MailScanner thanks Transtec Computers for their
support.