Hi,

I'm sure this one is very easy....

I am trying to write a function where one of its arguments has two posible 
(strings) values, 
defaulting to one of them if none is specified. My problem is that when 
evaluating the function 
the following warning is produced:

"the condition has length > 1 and only the first element will be used"

I've read the help page of if() but I don't get it because when evaluating step 
by step the 
warning is not produced.


Omitting the details of my function, below is an example of this 

## Function
fun <- function( n, result = c("simple", "complete") )
{
  if ( is.null(result) ) 
     result <-  "simple" 
  if ( !(result %in% c("simple", "s", "complete", "c")) ) {
      stop("specify type of result 'simple' or 'complete'")
 } else {
  res <- rnorm(n)
  res
 }
}

## This gives the warning
fun(n=20)

## But this not
fun(n=20, result="other")

## The warning is not produced when doing this step by step
  n <- 20
  result <-  "simple" 
  if ( !(result %in% c("simple", "s", "complete", "c")) ){
      stop("specify type of result 'simple' or 'complete'")
 } else {
  res <- rnorm(n)
  res
 }

## or here
  n <- 20
  result <-  "other" 
  if ( !(result %in% c("simple", "s", "complete", "c")) ){
      stop("specify type of result 'simple' or 'complete'")
 } else {
  res <- rnorm(n)
  res
 }


Thanks for your time

Héctor


-- 
Héctor Villalobos <[email protected]> 
 CICIMAR - IPN
 A.P. 592. Col. Centro 
 La Paz, Baja California Sur, MÉXICO. 23000
 Tels. (+52 612) 122 53 44; 123 46 58; 123 47 34  ext. 82425
 Fax.  (+52 612) 122 53 22

______________________________________________
[email protected] 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