[Rd] paste() with NAs .. change worth persuing?

Jari Oksanen jari.oksanen at oulu.fi
Wed Aug 22 19:53:39 CEST 2007


On 22 Aug 2007, at 20:16, Duncan Murdoch wrote:

> On 8/22/2007 11:50 AM, Martin Maechler wrote:
>> Consider this example code
>>
>>  c1 <- letters[1:7]; c2 <- LETTERS[1:7]
>>  c1[2] <- c2[3:4] <- NA
>>  rbind(c1,c2)
>>
>>   ##   [,1] [,2] [,3] [,4] [,5] [,6] [,7]
>>   ## c1 "a"  NA   "c"  "d"  "e"  "f"  "g"
>>   ## c2 "A"  "B"  NA   NA   "E"  "F"  "G"
>>
>>   paste(c1,c2)
>>
>>   ## -> [1] "a A"  "NA B" "c NA" "d NA" "e E"  "f F"  "g G"
>>
>> where a more logical result would have entries 2:4 equal to
>>       NA
>> i.e.,  as.character(NA)
>> aka    NA_character_
>>
>> Is this worth persuing, or does anyone see why not?
>
> A fairly common use of paste is to put together reports for human
> consumption.  Currently we have
>
>> p <- as.character(NA)
>> paste("the value of p is", p)
> [1] "the value of p is NA"
>
> which looks reasonable. Would this become
>
>> p <- as.character(NA)
>> paste("the value of p is", p)
> [1] NA
>
> under your proposal?  (In a quick search I was unable to find a real
> example where this would happen, but it would worry me...)

At least stop() seems to include such a case:

  message <- paste(args, collapse = "")

and we may expect there are NAs sometimes in stop().

cheers, jazza
--
Jari Oksanen, Oulu, Finland



More information about the R-devel mailing list