x: data.frame or comparable object such as matrix or tibble.
sep: character string separator to use between columns.
na.rm: logical whether to remove NA values, or include them as "NA" strings.
condenseBlanks: logical whether to condense blank or empty values without including an extra delimiter between columns.
includeNames: logical whether to include the colname delimited prior to the value, using sepName as the delimiter.
sepName: character string relevant when includeNames=TRUE, this value becomes the delimiter between name:value.
blankGrep: character string used as regular expression pattern in grep() to recognize blank entries; by default any field containing no text, or only whitespace, is considered a blank entry.
verbose: logical whether to print verbose output.
...: additional arguments are ignored.
Returns
character vector of length nrow(x).
Details
This function is intended to paste data.frame (or matrix, or tibble) values for each row of data. It differs from using apply(x, 2, paste):
it handles factors without converting to integer factor level numbers.
it also by default removes blank or empty fields, preventing the delimiter from being included multiple times, per the condenseBlanks argument.
it is notably faster than apply, by means of running paste() on each column of data, making the output vectorized, and scaling rather well for large data.frame objects.
The output can also include name:value pairs, which can make the output data more self-describing in some circumstances. That said, the most basic usefulness of this function is to create row labels.
Examples
# create an example data.framea1 <- c("red","blue")[c(1,1,2)];b1 <- c("yellow","orange")[c(1,2,2)];d1 <- c("purple","green")[c(1,2,2)];df2 <- data.frame(a=a1, b=b1, d=d1);df2;# the basic outputpasteByRow(df2);# Now remove an entry to show the empty field is skippeddf2[3,3]<-"";pasteByRow(df2);# the output tends to make good rownamesrownames(df2)<- pasteByRow(df2);# since the data.frame contains colors, we display using# imageByColors()withr::with_par(list("mar"=c(5,10,4,2)),{imageByColors(df2, cellnote=df2);})
See Also
Other jam string functions: asSize(), breaksByVector(), fillBlanks(), formatInt(), gsubOrdered(), gsubs(), makeNames(), nameVector(), nameVectorN(), padInteger(), padString(), pasteByRowOrdered(), sizeAsNum(), tcount(), ucfirst()