[R] Histogram in Lattice with 3 factors
willem vervoort
willemvervoort at gmail.com
Mon Feb 11 23:30:01 CET 2008
Dear R-help list,
I am trying to construct a lattice histogram using 3 factors.
My dataframe looks like this: (simulating a waterbalance over
groundwater with different salinities)
s days model EC EC_max
0.4 1 "A" 10 9
0.42 2 "A" 10 9
0.44 3 "A" 10 9
: : : : :
0.4 1 "B" 10 9
: : : : :
0.4 1 "A" 30 9
: : : : :
0.4 1 "A" 30 36
Anyway you get the gist
EC_max has two levels 9 and 36, EC has 3 levels 10, 30 and 70, and
model has two levels ("A" and "B"). There are say 365 days and s is
the variable of interest (soil saturation)
Can maybe be reproduced with:
data <- data.frame(s = rnorm(2*3*365*2),rep(1:365,12), model =
sort(rep(c("A","B"),6*365)),
EC = rep(sort(rep(c(10,30,70),365*2)),2), EC_max =
rep(sort(rep(c(9,36),3*365)),2))
I would like to plot histograms with the three factors using Lattice
so I had the following code:
my.strip <- function(which.given, ..., factor.levels) {
levs <- if (which.given == 1) c("Model A","Model B")
else {if(which.given == 2) paste("EC =
",as.character(EC),"dS/m")
else paste("ECmax = ",as.character(EC_max),"dS/m")}
strip.default(which.given, ..., factor.levels = levs)
}
histogram(~s|model*as.factor(EC)*as.factor(EC_max),data=Store,xlab="soil
saturation",type="density",strip=my.strip)
But I am doing something wrong, because it plots the histogram for
factor level EC_max =9 first and than straight over it the histogram
for factor level 36, so only 6 panels on the graph rather than 12.
I searched the archives, but no luck so far.
Any help is appreciated
Willem
platform i386-pc-mingw32
arch i386
os mingw32
system i386, mingw32
status
major 2
minor 6.1
year 2007
month 11
day 26
svn rev 43537
language R
version.string R version 2.6.1 (2007-11-26)
More information about the R-help
mailing list