Thank you for your answer, I got the second part!
Ivan

Le 1/19/2010 17:03, Carlos Ortega a écrit :
> Hello,
>
> You can loop in the subset you need by storing in a variable and 
> looping on that variable with indexes:
>
> seq.dat<-c(seq(7,10,1), seq(12,17,1))
> for( i in 1:length(seq.dat) ) {
>
> j<-seq.dat[i]
> with(ssfa, twoplots(TO_POS, ssfa[[j]]))
>
> }
>
> Regards,
> Carlos.
>
> On Tue, Jan 19, 2010 at 4:53 PM, Ivan Calandra 
> <ivan.calan...@uni-hamburg.de <mailto:ivan.calan...@uni-hamburg.de>> 
> wrote:
>
>     Hi again!
>
>     I feel like I cannot do anything by myself but I would now like to
>     plot
>     for all numeric variables I have (14 of them). I wanted to add a
>     loop then.
>     The code is:
>
>     ------
>     #defines the function for the plots (as written by Duncan Murdoch)
>     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)
>     }
>
>     #run the function on ssfa with TO_POS as x and ssfa[[i]] as y, the
>     numerical variables are from column 7 to 21
>     for (i in 7:21) {
>       with(ssfa, twoplots(TO_POS, ssfa[[i]]))
>     }
>     ------
>
>     I have therefore two questions:
>     - The code above works fine, but in the titles I get "Histogram of
>     ssfa[[i]]" instead of "Histogram of 'variable name'"
>     - What if I don't want to loop on all variables, but for example,
>     variables (=columns) 7 to 10 and 12 to 17? How do I give such
>     breaks and
>     ranges?
>     I admit I'm thinking about it since yesterday and I don't have a
>     clue...
>
>     I hope you will be able to help me.
>     Thanks in advance,
>     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 <mailto: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.
>
>

-- 
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Institut und Museum
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calan...@uni-hamburg.de


**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/mitarbeiter.php


        [[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.

Reply via email to