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

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