R/paste2.R

paste2 <- function(multi.columns, sep, handle.na=TRUE, trim=TRUE){
	if (is.matrix(multi.columns)) {
		multi.columns <- data.frame(multi.columns)
	}
	if (trim) multi.columns <- lapply(multi.columns, function(x) {
		gsub("^\\s+|\\s+$", "", x)
	}
	)
	if (!is.data.frame(multi.columns) & is.list(multi.columns)) {
		multi.columns <- do.call('cbind', multi.columns)
	} 
	m <- if (handle.na){
		apply(multi.columns, 1, function(x){
			if (any(is.na(x))){
				NA
			} else {
				paste(x, collapse = sep)
			}
		}
		)   
	} else {
		apply(multi.columns, 1, paste, collapse = sep)
	}
	names(m) <- NULL
	return(m)
}
trinker/metaDAT documentation built on May 31, 2019, 8:52 p.m.