| To: | s-news@lists.biostat.wustl.edu |
|---|---|
| Subject: | Code that works outside a custom function but not inside |
| From: | "s b" <sbmailinglist@gmail.com> |
| Date: | Thu, 30 Oct 2008 08:21:02 -0500 |
| Dkim-signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=C5sp3dz7LKQ9TUZFyoFOHrBj2iIYOjUzU1WwF5oqNNY=; b=xzN1gyZp7PRwYmkpbypvSYD+PVR5iuXJR0ouJrL9YFXxG5tOojwElEnEf4QTYekefc RYY9WcVPYEmbvZRbAs88PFh5VnZVGjwjNKBS7jCLi3r1QcPI0H7e0TyImnXL8kGlTdPx b56RJ/LW/mNDMJfiaEAeeuKJS9NCdW1VQdrW4= |
| Domainkey-signature: | a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=kpxZLsX5vIelKM/iJkNPIeZjiS3ih1DcpNM8qpypcHeXYD1jVIc9ZyWsW8RiWqX7hq msOnN34mafR/49r9vQTYgDIXyjaoiY00EtmOEPXgrYCJz9wprOO7oW/9b/JTfXUlivme gEkSIg08BrP3IUh10dGKKoIT5R+7uF6CwfrHk= |
|
Dear S-plus users, I am trying to plot some density histograms from a data.frame of simulated data. Since I want to plot several sets of simulated data, I have created this function myhisto which supposedly should do the work. Funny thing: the code within the function does not work when the data are passed to the function, BUT it does when it is used outside of a function (see the end of the code below). Can anyone explain what I am doing wrong in my function? Thanks you in advance, Sebastien PS: if anyone can also explain why the attribute which.panel does not work in strip, I would also be grateful! ############# Code starts here # Custom functions # Random generation of 10000 individuals for each input sd myranddf <- function(mysds){ nsd <- length(mysds) tmp <- c() for (i in seq(nsd)){ tmp <- c(tmp,rnorm(10000, mean = 0, sd = mysds[i])) } mydf <- data.frame(X=tmp, SD=rep(mysds, each = 10000)) mydf } # Histogram plot myhisto <- function(mydata,nBar){ mysds <- levels(factor(mydata[,2])) nID <- length(mysds) myplot <- histogram(~mydata[,1]|mydata[,2], data = ""> as.table=TRUE, type = "percent", nint=nBar, xlim=c(0,1), xlab="X", ylab="Probability density", layout=c(2,2), main=NULL, strip = function(which.panel,...){ lines(c(0,1,1,0,0),c(0,0,1,1,0),col=1) text(rep(0.5,nID),rep(0.5,nID), paste("SD = ",mysds[which.panel],sep=""), cex = 0.75)}, key=NULL) print(myplot) } # Create data set for typical logit transform with additive variability model # X = exp(ln(TVX/(100-TVX))+eta)/(1+exp(ln(TVX/(100-TVX))+eta)) TVX = 50 mysds = c(0.05,0.1,0.25,0.75)*TVX mydf <- myranddf(mysds) mydf[,1] <- exp(log(TVX/(100-TVX))+mydf[,1]) mydf[,1] <- mydf[,1]/(1+mydf[,1]) # Plotting using the function myhisto(mydf,50) # Plotting outside a function mydata <- mydf nBar <- 50 myplot <- histogram(~mydata[,1]|mydata[,2], data = ""> as.table=TRUE, type = "percent", nint=nBar, xlim=c(0,1), xlab="X", ylab="Probability density", layout=c(2,2), main=NULL, strip = function(which.panel,...){ lines(c(0,1,1,0,0),c(0,0,1,1,0),col=1) text(rep(0.5,4),rep(0.5,4), paste("SD = ",mysds[which.panel],sep=""), cex = 0.75)}, key=NULL) print(myplot) ################ END of code |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | S- Plus "options" & "scientific notation", Santosh |
|---|---|
| Next by Date: | Re: Code that works outside a custom function but not inside, Rongsheng Liu |
| Previous by Thread: | S- Plus "options" & "scientific notation", Santosh |
| Next by Thread: | Re: Code that works outside a custom function but not inside, Rongsheng Liu |
| Indexes: | [Date] [Thread] [Top] [All Lists] |