[R] is.na behavior

Richard M. Heiberger rmh at temple.edu
Thu Nov 19 04:22:45 CET 2015

It is in context of determining if an input argument for a graph title
is missing or null or na.  In any of those cases the function defines
a main title.
If the incoming title is not one of those, then I use the incoming title.
When the incoming title is an expression I see the warning.


simple <- function(x, y, main) {
  if (missing(main) || is.null(main) || is.na(main))
     main <-"abcd"
  xyplot(y ~ x, main=main)

simple(1, 2)
simple(1, 2, main=expression("defg"))

## In the real case the constructed title is not a simple character
## string, but the result of function call with several incoming
## arguments and several computed arguments.  It is of a complexity
## that making it the default in the calling sequence would
## unnecessarily complicate the calling sequence.

On Wed, Nov 18, 2015 at 10:04 PM, William Dunlap <wdunlap at tibco.com> wrote:
> You can convert the expression to a list and use is.na on that:
>    > e <- expression(1+NA, NA, 7, function(x)x+1)
>    > is.na(as.list(e))
> and you can do the same for a call object
>    > is.na(as.list(quote(func(arg1, tag2=NA, tag3=log(NA)))))
>                 tag2  tag3
> However, what is your motivation for wanting to apply is.na to an expression?
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
> On Wed, Nov 18, 2015 at 5:54 PM, Richard M. Heiberger <rmh at temple.edu> wrote:
>> What is the rationale for the following warning in R-3.2.2?
>>> is.na(expression(abcd))
>> [1] FALSE
>> Warning message:
>> In is.na(expression(abcd)) :
>>   is.na() applied to non-(list or vector) of type 'expression'
>>         [[alternative HTML version deleted]]
>> ______________________________________________
>> R-help at 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.

More information about the R-help mailing list