Wonderful!! Thanks a lot! Ivan Duncan Murdoch a écrit : > On 18/01/2010 9:02 AM, Ivan Calandra wrote: >> Hi everybody! >> >> I'm trying to write a script to plot a histogram, a boxplot and a >> qq-plot (under Windows XP, R2.10 if it matters) >> >> What I want to do: define the variables (x and y) to be used at the >> very beginning, so that I don't have to change all occurrences in the >> script when I want to plot a different variable. >> >> The dataset is called "ssfa". TO_POS is a categorical variable >> containing the tooth position for each sample. Asfc is a numerical >> variable. In my dataset, I have more variables but it wouldn't >> change; I want to plot one numeric vs one category. Do I need to >> supply some data? I don't think it's really necessary but let me know >> if you would like to. >> >> The code of what I do up to now: >> --- >> x <- ssfa$TO_POS >> y <- ssfa$Asfc >> hist(y, main="Histogram of Asfc", xlab="Asfc") >> boxplot(y~x, main="Boxplot of Asfc by TO_POS", xlab="TO_POS", >> ylab="Asfc") >> --- >> >> I would like something like: hist(y, main="Histogram of y", xlab="y") >> but that will add "Asfc" where I write "y". >> And the same for boxplot(y~x, main="Boxplot of y by x", xlab="x", >> ylab="y") >> I thought about something like: >> --- >> cat <- "TO_POS" >> num <- "Asfc" >> x <- paste("ssfa$", "TO_POS", sep="") >> y <- paste("ssfa$", "Asfc", sep="") >> hist(y, main=paste("Histogram of ", cat, sep=""), xlab=num) >> --- >> but it doesn't work since y is a string. I don't know how to get the >> syntax correctly. I am on the right path at least?! >> > > I think you're on the wrong path. You want to write a function, and > pass either x and y as arguments, or pass a formula containing both > (the former is easier). For example, > > twoplots <- function(x, y) { > ylab <- deparse(substitute(y)) # get the expression passed as y > xlab <- deparse(substitute(x)) # get the expression passed as x > hist(y, main=paste("Histogram of ", ylab), xlab=ylab) > boxplot(y ~ x, main=paste("Boxplot of", ylab, "by", xlab), > xlab=xlab, ylab=ylab) > } > > Then > > with(ssfa, twoplots(TO_POS, Asfc)) > > will give you your plots. > > Duncan Murdoch >
[[alternative HTML version deleted]]
______________________________________________ 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.