[R] Error: if statement: missing value where TRUE/FALSE needed

Bill Dunlap w||||@mwdun|@p @end|ng |rom gm@||@com
Wed Jan 5 19:49:57 CET 2022


And how does one [easily] download those files from sourceforge?

-Bill

On Wed, Jan 5, 2022 at 10:15 AM Chuck Coleman via R-help <
r-help using r-project.org> wrote:

> This is a rather complex error, for which I created
> https://sourceforge.net/projects/rhelp/files/Metro/ to hold a minimal
> workspace with all files needed to make everything work.  I'm afraid I
> can't make a minimal example because the environment may be involved.  I
> suspect that it is an error with base R itself.  I've verified it in both
> MacOS and Ubuntu Linux using Rstudio 2021.09.1 Build 372 and R 4.1.2.  I'm
> trying to run the command
>
> Metro.imf0 <- extractIMF0(Metro.xts,threshold = 1.7,robust=TRUE)$IMF0
>
> This is the last command in MetroTest.R, which also sets up the
> workspace.  The output is in MetroTest.log.  The error is:
>
>     Error in if (xseg[w1] > ub & m == 1) olrmark[wi] = TRUE else if
> (xseg[w1] <  :
>       missing value where TRUE/FALSE needed
>     Called from: detectspikes(x, mindex = mindex, threshold = threshold,
> robust = robust)
>
> extractIMF0() calls extractoutliers() which iteratively calls
> detectspikes() using while().  I've put in tracking code to show the
> beginning and end of each iteration of while() and the call to
> detectspikes().
>
> The command producing the error is:
>
>       if (xseg[w1] > ub & m == 1) olrmark[wi] = TRUE
>       else if (xseg[w1] < lb & m == 2) olrmark[wi] = TRUE
>
> This code used to work before R 4.1.2.  (I forget the exact version.)  The
> first time I had this error, I inserted a browser() command right before
> if/else so I could manually check all of the if/else arguments and they
> were nonmissing.  Then, executing the if/else caused a crash, I believe the
> first time it was called.  I then made the browser() statement conditional
> to stop execution if a missing argument were encountered and detectspikes()
> happily passed it and crashed.  Then, I individually called print() for
> each variable.  detectspikes() happily ran several times, then crashed in a
> later call after running for several seconds.  Again, browser() never
> stopped the program.  It is this version that I have verified on both a Mac
> and Ubuntu box.
>
> The first step appears to be to run the code using earlier versions of R.
> (I don't want to tamper with my installations.)  Afterwards, I have no
> idea.  Hence, my post.
>
> Thank you for your help,
> Chuck
>
> ______________________________________________
> R-help using 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]]



More information about the R-help mailing list