Running examples in ‘FME-Ex.R’ failed
The error most likely occurred in:

> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: obsplot
> ### Title: Plot Method for observed data
> ### Aliases: obsplot
> ### Keywords: hplot
> 
> ### ** Examples
> 
> 
> ## 'observed' data
> AIRquality <- cbind(DAY = 1:153, airquality[, 1:4])
> head(AIRquality)
  DAY Ozone Solar.R Wind Temp
1   1    41     190  7.4   67
2   2    36     118  8.0   72
3   3    12     149 12.6   74
4   4    18     313 11.5   62
5   5    NA      NA 14.3   56
6   6    28      NA 14.9   66
> obsplot(AIRquality, type="l", xlab="Day since May")
> 
> ## second set of observed data
> AIR2 <- cbind( 1:100, Solar.R = 250 * runif(100), Temp = 90-30*cos(2*pi*1:100/365) )
> 
> obsplot(AIRquality, AIR2, type = "l", xlab = "Day since May" , lwd = 1:2)
 ----------- FAILURE REPORT -------------- 
 --- failure: the condition has length > 1 ---
 --- srcref --- 
: 
 --- package (from environment) --- 
FME
 --- call from context --- 
obsplot(AIRquality, AIR2, type = "l", xlab = "Day since May", 
    lwd = 1:2)
 --- call from argument --- 
if (class(ldots[[i]]) %in% c("matrix", "data.frame")) {
    NewObs <- ldots[[i]]
    obs <- mergeObs(obs, NewObs)
    obs.pos <- rbind(obs.pos, c(obs.pos[nrow(obs.pos), 2] + 1, 
        nrow(obs)))
} else if (!is.null(ldots[[i]])) {
    dots[[nd <- nd + 1]] <- ldots[[i]]
    names(dots)[nd] <- ndots[i]
}
 --- R stacktrace ---
where 1: obsplot(AIRquality, AIR2, type = "l", xlab = "Day since May", 
    lwd = 1:2)

 --- value of length: 2 type: logical ---
[1]  TRUE FALSE
 --- function from context --- 
function (x, ..., which = NULL, xyswap = FALSE, ask = NULL) 
{
    checkobs <- function(obs) {
        Obs <- obs
        obsname <- colnames(obs)
        if (!class(obs) %in% c("data.frame", "matrix")) 
            stop("'obs' should be either a 'data.frame' or a 'matrix'")
        DD <- duplicated(obsname)
        if (sum(DD) > 0) {
            wD <- (1:ncol(obs))[DD]
            for (id in wD) {
                Add <- cbind(Obs[, 1], Obs[, id])
                colnames(Add) <- obsname[c(1, id)]
                obs <- mergeObs(obs[, !DD], Add)
            }
        }
        else if (is.character(obs[, 1]) | is.factor(obs[, 1])) 
            obs <- convert2wide(obs)
        return(obs)
    }
    obs <- checkobs(x)
    ldots <- list(...)
    ndots <- names(ldots)
    dots <- list()
    nd <- 0
    obs.pos <- matrix(nrow = 1, c(1, nrow(obs)))
    if (length(ldots) > 0) 
        for (i in 1:length(ldots)) if (class(ldots[[i]]) %in% 
            c("matrix", "data.frame")) {
            NewObs <- ldots[[i]]
            obs <- mergeObs(obs, NewObs)
            obs.pos <- rbind(obs.pos, c(obs.pos[nrow(obs.pos), 
                2] + 1, nrow(obs)))
        }
        else if (!is.null(ldots[[i]])) {
            dots[[nd <- nd + 1]] <- ldots[[i]]
            names(dots)[nd] <- ndots[i]
        }
    nx <- nrow(obs.pos)
    obsname <- colnames(obs)
    Which <- which
    if (is.null(Which)) 
        Which <- 2:(length(obsname))
    else if (is.numeric(Which)) 
        Which <- Which + 1
    ObsWhich <- selectvar(Which, obsname)
    np <- length(ObsWhich)
    nmdots <- names(dots)
    ask <- setplotpar(ndots, ldots, np, ask)
    if (ask) {
        oask <- devAskNewPage(TRUE)
        on.exit(devAskNewPage(oask))
    }
    labs <- (is.null(dots$xlab) && is.null(dots$ylab))
    plotnames <- c("xlab", "ylab", "xlim", "ylim", "main", "sub", 
        "log", "asp", "ann", "axes", "frame.plot", "panel.first", 
        "panel.last", "cex.lab", "cex.axis", "cex.main")
    ii <- names(dots) %in% plotnames
    dotmain <- dots[ii]
    dotmain <- setdots(dotmain, np)
    dotmain$xlab <- expanddots(dots$xlab, "x", np)
    dotmain$ylab <- expanddots(dots$ylab, "", np)
    dotmain$main <- expanddots(dots$main, obsname[ObsWhich], 
        np)
    isylim <- !is.null(dots$ylim)
    yylim <- expanddotslist(dots$ylim, np)
    isxlim <- !is.null(dots$xlim)
    xxlim <- expanddotslist(dots$xlim, np)
    ip <- !names(dots) %in% plotnames
    dotpoints <- dots[ip]
    dotpoints <- setdots(dotpoints, nx)
    dotpoints$pch <- expanddots(dots$pch, 1:nx, nx)
    dotpoints$col <- expanddots(dots$col, 1:nx, nx)
    dotpoints$bg <- expanddots(dots$bg, 1:nx, nx)
    xyswap <- rep(xyswap, length = np)
    iobs <- 0
    for (ip in 1:np) {
        io <- ObsWhich[ip]
        Dotmain <- extractdots(dotmain, ip)
        Dotpoints <- extractdots(dotpoints, 1)
        Xlog <- Ylog <- FALSE
        if (!is.null(Dotmain$log)) {
            Ylog <- length(grep("y", Dotmain$log))
            Xlog <- length(grep("x", Dotmain$log))
        }
        if (!xyswap[ip]) {
            if (!isylim) 
                Dotmain$ylim <- Range(NULL, obs[, io], Ylog)
            else Dotmain$ylim <- yylim[[ip]]
            Dotmain$xlim <- xxlim[[ip]]
            if (is.null(Dotmain$xlim)) 
                Dotmain$xlim <- Range(NULL, obs[, 1], Xlog)
            i.obs <- obs.pos[1, 1]:obs.pos[1, 2]
            if (length(i.obs) > 0) 
                do.call("plot", c(alist(obs[i.obs, 1], obs[i.obs, 
                  io]), Dotmain, Dotpoints))
            else do.call("plot", c(NULL, Dotmain, Dotpoints))
            if (nx > 1) 
                for (j in 2:nx) if (length(i.obs <- obs.pos[j, 
                  1]:obs.pos[j, 2]) > 0) 
                  do.call("points", c(alist(obs[i.obs, 1], obs[i.obs, 
                    io]), extractdots(dotpoints, j)))
        }
        else {
            if (Dotmain$xlab == "x" & Dotmain$ylab == "") {
                xl <- Dotmain$ylab
                Dotmain$ylab <- Dotmain$xlab
                Dotmain$xlab <- xl
            }
            if (!isxlim) {
                xrange <- Range(NULL, obs[, io], Xlog)
                Dotmain$xlim <- xrange
            }
            else Dotmain$xlim <- xxlim[[ip]]
            if (is.null(yylim[[ip]])) {
                Dotmain$ylim <- rev(Range(NULL, range(obs[, 1]), 
                  Ylog))
            }
            else Dotmain$ylim <- yylim[[ip]]
            i.obs <- obs.pos[1, 1]:obs.pos[1, 2]
            if (length(i.obs) > 0) 
                do.call("plot", c(alist(obs[i.obs, io], obs[i.obs, 
                  1]), Dotmain, Dotpoints))
            else do.call("plot", c(NULL, Dotmain, Dotpoints))
            if (nx > 1) 
                for (j in 2:nx) {
                  i.obs <- obs.pos[j, 1]:obs.pos[j, 2]
                  if (length(i.obs) > 0) {
                    Dotpoints <- extractdots(dotpoints, j)
                    do.call("points", c(alist(obs[i.obs, io], 
                      obs[i.obs, 1]), Dotpoints))
                  }
                }
        }
    }
}
<bytecode: 0x55c434cf3138>
<environment: namespace:FME>
 --- function search by body ---
Function obsplot in namespace FME has this body.
 ----------- END OF FAILURE REPORT -------------- 
Fatal error: the condition has length > 1