The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Each function in concatenate returns a comma-separated string. (A
length-one character vector.) They can be used to construct
human-friendly messages whose elements aren’t known in advance, like
calls to message
, warning
or
stop
, from clean code.
The workhorse function in concatenate is cc
.
cc("one fish", "two fish")
#> [1] "one fish, two fish"
Its wrappers cc_or
and cc_and
insert “or”
and “and” between the last two elements of the input.
cc_and("this", "that", "the other")
#> [1] "this, that and the other"
cc_or("one way", "another")
#> [1] "one way or another"
cn
and its derivatives combine these functions with
sprintf
-like substitution and the grammatical number
awareness of ngettext
.
<- unique(iris$Species)
x cn_and(x, "a single species: %c", "%n unique species: %c")
#> [1] "3 unique species: setosa, versicolor and virginica"
There are row-wise data.frame
methods for the
cn
functions.
<- "%n row: %c"
singular <- "%n rows whose values are %c"
plural cn(chickwts[1, ], singular, plural)
#> [1] "1 row: 179, horsebean"
cn_and(chickwts[1:3, 1, drop = FALSE], singular, plural)
#> [1] "3 rows whose values are 179, 160 and 136"
The cc
functions are also available as binary infix
operators.
<- "important value"
x %+% "!"
x #> [1] "important value!"
devtools::install_github('jamesdunham/concatenate')
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.