[R] (no subject)

Ravi Varadhan RVARADHAN at JHMI.EDU
Tue Nov 22 00:12:17 CET 2005


Hi,

I have written the following function to check whether a vector has elements
satisfying monotonicity.

is.monotone <- function(vec, increase=T){
# check for monotonicity in time-stamp data for cortisol collection
ans <- TRUE
vec.nomis <- vec[!is.na(vec)]
if (increase & any(diff(vec.nomis,1) < 0, na.rm=T)) ans <- FALSE
if (!increase & any(diff(vec.nomis,1) > 0, na.rm=T)) ans <- FALSE
ans
}

This works correctly, but I get this error message as below.

> x <- 2:10
> is.monotone(x)
[1] TRUE
Warning messages:
1: the condition has length > 1 and only the first element will be used in:
if (increase & any(diff(vec.nomis, 1) < 0, na.rm = T)) ans <- FALSE 
2: the condition has length > 1 and only the first element will be used in:
if (!increase & any(diff(vec.nomis, 1) > 0, na.rm = T)) ans <- FALSE 
>

I am unable to see why the condition should have a length greater than 1,
since "any" should give me a single logical value.  

Can any one tell me what is going on here?  ( I am using version 2.1.1 on
Windows).

Thanks very much,
Ravi.

--------------------------------------------------------------------------
Ravi Varadhan, Ph.D.
Assistant Professor,  The Center on Aging and Health
Division of Geriatric Medicine and Gerontology
Johns Hopkins University
Ph: (410) 502-2619
Fax: (410) 614-9625
Email:  rvaradhan at jhmi.edu




More information about the R-help mailing list