On Oct 5, 2009, at 7:56 PM, Duncan Murdoch wrote:

On 05/10/2009 7:47 PM, jimdare wrote:
Hi There,
I have created the following function
format<- function(){
repeat {
form<-readline(paste("\nIn what format do you want to save these
plots?\nChoose from: wmf, emf, png, jpg, jpeg, bmp, tif, tiff, ps, eps, or pdf.\nNote: eps is the suggested format for publication quality plots.\nPlot
format --> "));
        cat("\nI'm sorry, I don't know what that format is.\nPlease try
again\nPress ENTER...");readline()}
if (form == c("wmf", "emf", "png", "jpg", "jpeg", "bmp", "tif", "tiff",
"ps", "eps", "pdf")) {break}
}
How do I get the program to recognise that the user has entered one of the formats in the last line? Even entering "png" insted of png at the prompt
doesn't seem to work.  Will the loop only break if I enter all of the
possible formats?

To debug stuff like this, assign a value to form, then evaluate the condition. For example,

> form <- "png"
> form == c("wmf", "emf", "png", "jpg", "jpeg", "bmp", "tif", "tiff",
+  "ps", "eps", "pdf")
[1] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

So you could put any() around the test, or use the %in% operator instead of ==, or use the menu() or select.list() functions.

The ?Devices help page suggests that there is a core of valid formats and a group of installation specific formats. the capabilities() functions gives logical values for the list of both graphics and non- graphics optional functions. This is a hack to return a list of core features with additional system specific options (illustrated on a my particular Mac):

> val.dev <- c("ps" ,"pdf", "pictex", "xfig", "bitmap", names(capabilities()[names(capabilities()) %in% c("X11", "bmp", "jpeg", "png", "tiff", "cairo_pdf", "quartz")]) )
> val.dev
[1] "ps" "pdf" "pictex" "xfig" "bitmap" "jpeg" "png" "tiff" "X11"

The fact that the valid types are in the names makes it all a bit Baroque. (And I think that a correct Mac version would furhter check to see if aqua is true and if so return "jpeg", "png" and "tiff" even if those were not listed as part of the X11 capabilities.)


Duncan Murdoch

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

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
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