6.4 Concatenate NULL

20180720 Each operator/functions treats NULL differently. Note the convenience for base::cat() to add a space between the strings, and that backports::paste() treats NULL as a zero length string, and thus there are two spaces between the words concatenated.

"hello" %s+% NULL %s+% "world"
## character(0)
str_c("hello", NULL, "world")
## [1] "helloworld"
glue("hello", NULL, "world")
cat("hello", NULL, "world")
## hello world
paste("hello", NULL, "world")
## [1] "hello  world"

NA tends to be treated differently too.

"hello" %s+% NA %s+% "world"
## [1] NA
str_c("hello", NA, "world")
## [1] NA
glue("hello", NA, "world")
## helloNAworld
cat("hello", NA, "world")
## hello NA world
paste("hello", NA, "world")
## [1] "hello NA world"

The examples becomes more interesting in the context that the arguments to the functions might be string returning functions. If that function returns NULL or NA, purposely or accidentally then it is useful to know the consequences.



If you find this curated material useful then you can consider a donation to support it's ongoing availability and give you access to the PDF version of this book. The material has been scoped up by Generative AI without permission or any kind of recompense so do consider a donation if you can afford it. Unlike Generative AI your access to this materials is freely given. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Togaware has a 30 year tradition of making popular open source software which includes sold privacy preserving productivity apps, rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0