Re: [R] plotmath and logical operators?

2018-08-21 Thread Gabor Grothendieck
Try this:

plot(1)
tmp <- x >= 3 ~ "&" ~ y <= 3
mtext(tmp)
On Mon, Aug 20, 2018 at 5:00 PM MacQueen, Don via R-help
 wrote:
>
> I would like to use plotmath to annotate a plot with an expression that 
> includes a logical operator.
>
> ## works well
> tmp <- expression(x >= 3)
> plot(1)
> mtext(tmp)
>
> ## not so well
> tmp <- expression(x >= 3 &  y <= 3)
> plot(1)
> mtext(tmp)
>
> Although the text that's displayed makes sense, it won't be obvious to my 
> non-mathematical audience.
>
> I'd appreciate suggestions.
>
>
> I've found a work-around that gets the annotation to look right
>   tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
>   plot(1)
>   mtext(tmpw)
>
>
> But it breaks my original purpose, illustrated by this example:
>
> df <- data.frame(x=1:5, y=1:5)
> tmp <- expression(x >= 3 & y <= 3)
> tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
> with(df, eval(tmp))
> [1] FALSE FALSE  TRUE FALSE FALSE
> with(df, eval(tmpw))
> [1] "FALSE  &  TRUE" "FALSE  &  TRUE" "TRUE  &  TRUE"  "TRUE  &  FALSE" "TRUE 
>  &  FALSE"
>
> Thanks
> -Don
>
> --
> Don MacQueen
> Lawrence Livermore National Laboratory
> 7000 East Ave., L-627
> Livermore, CA 94550
> 925-423-1062
> Lab cell 925-724-7509
>
>
>
> __
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.



-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] plotmath and logical operators?

2018-08-20 Thread Richard M. Heiberger
## I would use microplot in this situation.
## This example produces a pdf file containing the graph.

library(lattice)
library(microplot)

## Hmisc options for pdflatex
## graphics files are .pdf
latexSetOptions()

RtoLatex <- function(subset , subset.char=substitute(subset)) {
  ## you might need some gsub calls in here
  paste0("$", subset.char, "$")
}

plotSubsetLatex <- function (data, subset, qsubset = substitute(subset),
 ...) {
  sdata <- data[eval(qsubset, data), ]
  myplot <- xyplot( y ~ x , data=sdata)
  latex(myplot,
## caption=RtoLatex(subset.char=deparse(qsubset)),  ## use
either caption or colheads
colheads=paste("\\Large \\strut",   ##
Hmisc::latex argument
   RtoLatex(subset.char=deparse(qsubset))),
collapse=identity, ## collapse is an argument to microplot()
x.axis=FALSE, y.axis=FALSE, ## x.axis, y.axis are arguments to
as.includegraphics()
...) ## arguments to latex() or as.includegraphics() or microplot()
  }


df <- data.frame(x=1:5, y=1:5)
myplot.tex <- plotSubsetLatex(df, x<1.5 | y>3.5, ## see title "(x <
1.5) | (y > 3.5)" and pts at x=1,4,5.
  height.panel=3, width.panel=3, rowname=NULL)
myplot.tex$file ## pathname to tex file which contains pathname to
component pdf file
## print.default(myplot.tex) ## pathname to tex file and additional
information about component pdf files
myplot.tex ## displays generated pdf file on screen, and pathname to
generated pdf file

On Mon, Aug 20, 2018 at 10:12 PM, William Dunlap via R-help
 wrote:
> A generalization of Bert's suggestion is
>
> plotSubset <- function (data, subset, qsubset = substitute(subset))
> {
> sdata <- data[eval(qsubset, data), ]
> with(sdata, plot(x, y, main = subsetToPlotmath(expr = qsubset)))
> }
>
>
> subsetToPlotmath <- function(expr) {
> # Argument 'expr': an expression used as subset argument to subset()
> # Return: an expression used by plotmath that is more readable to
> non-programming people
> if (is.call(expr)) {
> for(i in seq_along(expr)) {
> expr[[i]] <- subsetToPlotmath(expr[[i]])
> }
> if (is.name(funcName <- expr[[1]]) && !is.null(func <-
> env.subsetToPlotmath[[as.character(funcName)]])) {
> expr <- do.call(func, as.list(expr[-1]))
> }
> }
> expr
> }
> env.subsetToPlotmath <- new.env()
> env.subsetToPlotmath[["&"]] <- function(x, y) substitute(x ~ italic(and) ~
> y)
> env.subsetToPlotmath[["|"]] <- function(x, y) substitute((x) ~ italic(or) ~
> (y)) # internal parens not always needed
> env.subsetToPlotmath[["log10"]] <- function(x)
> substitute(italic(log)[10](x))
> env.subsetToPlotmath[["exp"]] <- function(x) substitute(italic(e)^x)
>
> You can add more conversions to the environment env.subsetToPlotmath.
>
> Try it with
>
>> df <- data.frame(x=1:5, y=1:5)
>> plotSubset(df, x<1.5 | y>3.5) # see title "(x < 1.5) or (y > 3.5)" and
> pts at x=1,4,5.
>
> It doesn't get right the parentheses needed to enforce the order of
> evaluation:
> it always puts parentheses around the arguments to | and never puts them
> around the arguments to &.
>
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
>
> On Mon, Aug 20, 2018 at 4:14 PM, MacQueen, Don via R-help <
> r-help@r-project.org> wrote:
>
>> Thanks Bert!
>>
>> It certainly works for the example (and shows a much deeper understanding
>> of eval, substitute, etc. than I have). But it doesn't appear to generalize
>> very well in the way I need (which of course I didn't think of mentioning
>> until after I sent the email -- sorry).
>>
>> Suppose subs is any expression that would be valid for the subset argument
>> of base::subset, for a given data frame. Then I can extract that subset of
>> the data frame by using
>>mydf[  with(mydf, eval(subs)) ,  ]
>> (or similar).
>>
>> Then, having plotted some aspect of that subset, I want to annotate the
>> plot with the subset specifications.
>>
>> I've used this approach to  set up a system that helps me to interactively
>> review various subsets of a large set of data. I save the final selected
>> subsetting expressions in some sort of data structure, for later use in
>> preparing a report using rmarkdown.
>>
>> I was hoping to use plotmath to improve the appearance of the annotations
>> -- but I now think it's not worth this kind of effort. I think I'm going to
>> settle for mtext( as.character(subs) ).
>

Re: [R] plotmath and logical operators?

2018-08-20 Thread William Dunlap via R-help
A generalization of Bert's suggestion is

plotSubset <- function (data, subset, qsubset = substitute(subset))
{
sdata <- data[eval(qsubset, data), ]
with(sdata, plot(x, y, main = subsetToPlotmath(expr = qsubset)))
}


subsetToPlotmath <- function(expr) {
# Argument 'expr': an expression used as subset argument to subset()
# Return: an expression used by plotmath that is more readable to
non-programming people
if (is.call(expr)) {
for(i in seq_along(expr)) {
expr[[i]] <- subsetToPlotmath(expr[[i]])
}
if (is.name(funcName <- expr[[1]]) && !is.null(func <-
env.subsetToPlotmath[[as.character(funcName)]])) {
expr <- do.call(func, as.list(expr[-1]))
}
}
expr
}
env.subsetToPlotmath <- new.env()
env.subsetToPlotmath[["&"]] <- function(x, y) substitute(x ~ italic(and) ~
y)
env.subsetToPlotmath[["|"]] <- function(x, y) substitute((x) ~ italic(or) ~
(y)) # internal parens not always needed
env.subsetToPlotmath[["log10"]] <- function(x)
substitute(italic(log)[10](x))
env.subsetToPlotmath[["exp"]] <- function(x) substitute(italic(e)^x)

You can add more conversions to the environment env.subsetToPlotmath.

Try it with

> df <- data.frame(x=1:5, y=1:5)
> plotSubset(df, x<1.5 | y>3.5) # see title "(x < 1.5) or (y > 3.5)" and
pts at x=1,4,5.

It doesn't get right the parentheses needed to enforce the order of
evaluation:
it always puts parentheses around the arguments to | and never puts them
around the arguments to &.

Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Mon, Aug 20, 2018 at 4:14 PM, MacQueen, Don via R-help <
r-help@r-project.org> wrote:

> Thanks Bert!
>
> It certainly works for the example (and shows a much deeper understanding
> of eval, substitute, etc. than I have). But it doesn't appear to generalize
> very well in the way I need (which of course I didn't think of mentioning
> until after I sent the email -- sorry).
>
> Suppose subs is any expression that would be valid for the subset argument
> of base::subset, for a given data frame. Then I can extract that subset of
> the data frame by using
>mydf[  with(mydf, eval(subs)) ,  ]
> (or similar).
>
> Then, having plotted some aspect of that subset, I want to annotate the
> plot with the subset specifications.
>
> I've used this approach to  set up a system that helps me to interactively
> review various subsets of a large set of data. I save the final selected
> subsetting expressions in some sort of data structure, for later use in
> preparing a report using rmarkdown.
>
> I was hoping to use plotmath to improve the appearance of the annotations
> -- but I now think it's not worth this kind of effort. I think I'm going to
> settle for mtext( as.character(subs) ).
>
> -Don
>
> --
> Don MacQueen
> Lawrence Livermore National Laboratory
> 7000 East Ave., L-627
> Livermore, CA 94550
> 925-423-1062
> Lab cell 925-724-7509
>
>
>
> From: Bert Gunter 
> Date: Monday, August 20, 2018 at 3:38 PM
> To: "MacQueen, Don" 
> Cc: array R-help 
> Subject: Re: [R] plotmath and logical operators?
>
> This is clumsy and probably subject to considerable improvement, but does
> it work for you:
>
> left <- quote(x >= 3)
> right <- quote(y <= 3) ## these can be anything
>
> ## the plot:
> plot(1)
> eval(substitute(mtext(expression(paste(left, " & ",right))), list(left =
> left, right = right)))
>
> ## Expression evaluation
> eval(substitute(with(df,left & right), list(left = left, right = right)))
> Cheers,
> Bert
>
>
> Bert Gunter
>
> "The trouble with having an open mind is that people keep coming along and
> sticking things into it."
> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>
>
> On Mon, Aug 20, 2018 at 2:00 PM MacQueen, Don via R-help <
> r-help@r-project.org<mailto:r-help@r-project.org>> wrote:
> I would like to use plotmath to annotate a plot with an expression that
> includes a logical operator.
>
> ## works well
> tmp <- expression(x >= 3)
> plot(1)
> mtext(tmp)
>
> ## not so well
> tmp <- expression(x >= 3 &  y <= 3)
> plot(1)
> mtext(tmp)
>
> Although the text that's displayed makes sense, it won't be obvious to my
> non-mathematical audience.
>
> I'd appreciate suggestions.
>
>
> I've found a work-around that gets the annotation to look right
>   tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
>   plot(1)
>   mtext(tmpw)
>
>
> But it breaks my original purpose, illustrated by this example:
>
> df <- data.frame(

Re: [R] plotmath and logical operators?

2018-08-20 Thread Bert Gunter
As I understand it, the problem is:

"A mathematical expression must obey the normal rules of syntax for
any *R* expression,
but it is interpreted according to very different rules than for normal *R*
expressions."

I believe this means that you cannot do what you wanted to using plotmath.

Cheers,
Bert


On Mon, Aug 20, 2018 at 4:14 PM MacQueen, Don  wrote:

> Thanks Bert!
>
>
>
> It certainly works for the example (and shows a much deeper understanding
> of eval, substitute, etc. than I have). But it doesn't appear to generalize
> very well in the way I need (which of course I didn't think of mentioning
> until after I sent the email -- sorry).
>
>
>
> Suppose subs is any expression that would be valid for the subset argument
> of base::subset, for a given data frame. Then I can extract that subset of
> the data frame by using
>
>mydf[  with(mydf, eval(subs)) ,  ]
>
> (or similar).
>
>
>
> Then, having plotted some aspect of that subset, I want to annotate the
> plot with the subset specifications.
>
>
>
> I've used this approach to  set up a system that helps me to interactively
> review various subsets of a large set of data. I save the final selected
> subsetting expressions in some sort of data structure, for later use in
> preparing a report using rmarkdown.
>
>
>
> I was hoping to use plotmath to improve the appearance of the annotations
> -- but I now think it's not worth this kind of effort. I think I'm going to
> settle for mtext( as.character(subs) ).
>
>
>
> -Don
>
>
>
> --
>
> Don MacQueen
>
> Lawrence Livermore National Laboratory
>
> 7000 East Ave., L-627
>
> Livermore, CA 94550
>
> 925-423-1062
>
> Lab cell 925-724-7509
>
>
>
>
>
>
>
> *From: *Bert Gunter 
> *Date: *Monday, August 20, 2018 at 3:38 PM
> *To: *"MacQueen, Don" 
> *Cc: *array R-help 
> *Subject: *Re: [R] plotmath and logical operators?
>
>
>
> This is clumsy and probably subject to considerable improvement, but does
> it work for you:
>
>
>
> left <- quote(x >= 3)
> right <- quote(y <= 3) ## these can be anything
>
>
>
> ## the plot:
>
> plot(1)
>
> eval(substitute(mtext(expression(paste(left, " & ",right))), list(left =
> left, right = right)))
>
>
>
> ## Expression evaluation
>
> eval(substitute(with(df,left & right), list(left = left, right = right)))
>
> Cheers,
>
> Bert
>
>
>
>
> Bert Gunter
>
> "The trouble with having an open mind is that people keep coming along and
> sticking things into it."
> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>
>
>
>
>
> On Mon, Aug 20, 2018 at 2:00 PM MacQueen, Don via R-help <
> r-help@r-project.org> wrote:
>
> I would like to use plotmath to annotate a plot with an expression that
> includes a logical operator.
>
> ## works well
> tmp <- expression(x >= 3)
> plot(1)
> mtext(tmp)
>
> ## not so well
> tmp <- expression(x >= 3 &  y <= 3)
> plot(1)
> mtext(tmp)
>
> Although the text that's displayed makes sense, it won't be obvious to my
> non-mathematical audience.
>
> I'd appreciate suggestions.
>
>
> I've found a work-around that gets the annotation to look right
>   tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
>   plot(1)
>   mtext(tmpw)
>
>
> But it breaks my original purpose, illustrated by this example:
>
> df <- data.frame(x=1:5, y=1:5)
> tmp <- expression(x >= 3 & y <= 3)
> tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
> with(df, eval(tmp))
> [1] FALSE FALSE  TRUE FALSE FALSE
> with(df, eval(tmpw))
> [1] "FALSE  &  TRUE" "FALSE  &  TRUE" "TRUE  &  TRUE"  "TRUE  &  FALSE"
> "TRUE  &  FALSE"
>
> Thanks
> -Don
>
> --
> Don MacQueen
> Lawrence Livermore National Laboratory
> 7000 East Ave., L-627
> Livermore, CA 94550
> 925-423-1062
> Lab cell 925-724-7509
>
>
>
> __
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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 -- To UNSUBSCRIBE and more, see
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.


Re: [R] plotmath and logical operators?

2018-08-20 Thread MacQueen, Don via R-help
Thanks Bert!

It certainly works for the example (and shows a much deeper understanding of 
eval, substitute, etc. than I have). But it doesn't appear to generalize very 
well in the way I need (which of course I didn't think of mentioning until 
after I sent the email -- sorry).

Suppose subs is any expression that would be valid for the subset argument of 
base::subset, for a given data frame. Then I can extract that subset of the 
data frame by using
   mydf[  with(mydf, eval(subs)) ,  ]
(or similar).

Then, having plotted some aspect of that subset, I want to annotate the plot 
with the subset specifications.

I've used this approach to  set up a system that helps me to interactively 
review various subsets of a large set of data. I save the final selected 
subsetting expressions in some sort of data structure, for later use in 
preparing a report using rmarkdown.

I was hoping to use plotmath to improve the appearance of the annotations -- 
but I now think it's not worth this kind of effort. I think I'm going to settle 
for mtext( as.character(subs) ).

-Don

--
Don MacQueen
Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062
Lab cell 925-724-7509



From: Bert Gunter 
Date: Monday, August 20, 2018 at 3:38 PM
To: "MacQueen, Don" 
Cc: array R-help 
Subject: Re: [R] plotmath and logical operators?

This is clumsy and probably subject to considerable improvement, but does it 
work for you:

left <- quote(x >= 3)
right <- quote(y <= 3) ## these can be anything

## the plot:
plot(1)
eval(substitute(mtext(expression(paste(left, " & ",right))), list(left = left, 
right = right)))

## Expression evaluation
eval(substitute(with(df,left & right), list(left = left, right = right)))
Cheers,
Bert


Bert Gunter

"The trouble with having an open mind is that people keep coming along and 
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Mon, Aug 20, 2018 at 2:00 PM MacQueen, Don via R-help 
mailto:r-help@r-project.org>> wrote:
I would like to use plotmath to annotate a plot with an expression that 
includes a logical operator.

## works well
tmp <- expression(x >= 3)
plot(1)
mtext(tmp)

## not so well
tmp <- expression(x >= 3 &  y <= 3)
plot(1)
mtext(tmp)

Although the text that's displayed makes sense, it won't be obvious to my 
non-mathematical audience.

I'd appreciate suggestions.


I've found a work-around that gets the annotation to look right
  tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
  plot(1)
  mtext(tmpw)


But it breaks my original purpose, illustrated by this example:

df <- data.frame(x=1:5, y=1:5)
tmp <- expression(x >= 3 & y <= 3)
tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
with(df, eval(tmp))
[1] FALSE FALSE  TRUE FALSE FALSE
with(df, eval(tmpw))
[1] "FALSE  &  TRUE" "FALSE  &  TRUE" "TRUE  &  TRUE"  "TRUE  &  FALSE" "TRUE  
&  FALSE"

Thanks
-Don

--
Don MacQueen
Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062
Lab cell 925-724-7509



__
R-help@r-project.org<mailto:R-help@r-project.org> mailing list -- To 
UNSUBSCRIBE and more, see
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 -- To UNSUBSCRIBE and more, see
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.


Re: [R] plotmath and logical operators?

2018-08-20 Thread Bert Gunter
This is clumsy and probably subject to considerable improvement, but does
it work for you:

left <- quote(x >= 3)
right <- quote(y <= 3) ## these can be anything

## the plot:
plot(1)
eval(substitute(mtext(expression(paste(left, " & ",right))), list(left =
left, right = right)))

## Expression evaluation
eval(substitute(with(df,left & right), list(left = left, right = right)))

Cheers,
Bert


Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Mon, Aug 20, 2018 at 2:00 PM MacQueen, Don via R-help <
r-help@r-project.org> wrote:

> I would like to use plotmath to annotate a plot with an expression that
> includes a logical operator.
>
> ## works well
> tmp <- expression(x >= 3)
> plot(1)
> mtext(tmp)
>
> ## not so well
> tmp <- expression(x >= 3 &  y <= 3)
> plot(1)
> mtext(tmp)
>
> Although the text that's displayed makes sense, it won't be obvious to my
> non-mathematical audience.
>
> I'd appreciate suggestions.
>
>
> I've found a work-around that gets the annotation to look right
>   tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
>   plot(1)
>   mtext(tmpw)
>
>
> But it breaks my original purpose, illustrated by this example:
>
> df <- data.frame(x=1:5, y=1:5)
> tmp <- expression(x >= 3 & y <= 3)
> tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
> with(df, eval(tmp))
> [1] FALSE FALSE  TRUE FALSE FALSE
> with(df, eval(tmpw))
> [1] "FALSE  &  TRUE" "FALSE  &  TRUE" "TRUE  &  TRUE"  "TRUE  &  FALSE"
> "TRUE  &  FALSE"
>
> Thanks
> -Don
>
> --
> Don MacQueen
> Lawrence Livermore National Laboratory
> 7000 East Ave., L-627
> Livermore, CA 94550
> 925-423-1062
> Lab cell 925-724-7509
>
>
>
> __
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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 -- To UNSUBSCRIBE and more, see
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.


[R] plotmath and logical operators?

2018-08-20 Thread MacQueen, Don via R-help
I would like to use plotmath to annotate a plot with an expression that 
includes a logical operator.

## works well
tmp <- expression(x >= 3)
plot(1)
mtext(tmp)

## not so well
tmp <- expression(x >= 3 &  y <= 3)
plot(1)
mtext(tmp)

Although the text that's displayed makes sense, it won't be obvious to my 
non-mathematical audience.

I'd appreciate suggestions.


I've found a work-around that gets the annotation to look right
  tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
  plot(1)
  mtext(tmpw)


But it breaks my original purpose, illustrated by this example:

df <- data.frame(x=1:5, y=1:5)
tmp <- expression(x >= 3 & y <= 3)
tmpw <- expression(paste( x >= 3, " & ", y <= 3) )
with(df, eval(tmp))
[1] FALSE FALSE  TRUE FALSE FALSE
with(df, eval(tmpw))
[1] "FALSE  &  TRUE" "FALSE  &  TRUE" "TRUE  &  TRUE"  "TRUE  &  FALSE" "TRUE  
&  FALSE"

Thanks
-Don

--
Don MacQueen
Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062
Lab cell 925-724-7509
 
 

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.