The canonical method of creating a numeric value from a factor is to
wrap the factor in as.numeric(as.character( (.)) The as.character
grabs the value from the factor levels rahter than giving you the
internal codings and the as.numeic finishes the job.
Set xaxt=FALSE in the plot arguments. The axis can be managed with the
axis() function with at= and labels= arguments. You might want to not
plot every one of them, perhaps:
at = seq(-36, 33, by = 5) , labels = as.numeric(as.factor(z
$bins[seq(-36, 33, by = 5)] )),
--
David Winsemius
On Jun 15, 2009, at 7:09 PM, jproville wrote:
Hi,
I'd really appreciate if someone could give me some help or advice
about
this - I've tried everything I know and am clueless about how to
proceed!
I've written a script to import ASCII data of raster maps, bin them
into
categories, calculate the mean values within these bins and plot the
two in
a simple graph. I'm running into problems with my x axis, as R
cannot add
the bin categories as labels and simply outputs the factor values of
the
number of bins.
In much more detail:
One set of data is fractional values for the amount of cropland in a
designated area (raster cell). The second is annual average
temperature
data, in the same format. I import these using:
xRaw<-scan(".../Temp.txt")
yRaw<-scan(".../Cropland.txt")
and then designate cells with values of -9999 as NAs:
x<-ifelse(xRaw==-9999,NA,xRaw)
y<-ifelse(yRaw==-9999,NA,yRaw)
Then, I compile them into a 2 column data frame, and exclude the NA
values:
zRaw<-data.frame(x,y)
z<-na.exclude(zRaw)
I am then left with data frame 'z' which is a refined list of data.
Using
the 'cut' function, I assign each row into one of 69 different bins:
z$bins<-cut(z$x, breaks=c(-36:33), include.lowest=TRUE)
Each bin is now 1 degree Celsius wide. Within each one, I calculate
the mean
value of the corresponding fractional cropland data:
a<-tapply(z$y, z$bins, mean)
Object 'a' now contains each bin category and the associated mean
cropland
values, so 69 points in total.
Now, a problem arises when I try and plot these values using:
plot(a, xlab="Temperature", ylab="Fraction of Cropland", pch=20)
What happens is that R intuitively labels my x-axis from 1-70, which
corresponds to the bin factor values that were returned when the 'cut'
function was used. I would like to simply label the x-axis with my
temperature values, from -36 degrees to 33 degrees, instead of having
numbers 1-69. How can I do this??
Thanks,
Jeremy Proville
M.Sc. Candidate
Bioresource Engineering, McGill University
--
View this message in context:
http://www.nabble.com/Bin-Category-Labels-on-Axis-tp24042325p24042325.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.