(Related question that does not include sorting. It\'s easy to just use paste
when you don\'t need to sort.)
I have a less-than-ideally-structured tabl
Just apply down rows:
apply(df,1,function(x){
paste(sort(x),collapse = ",")
})
Wrap it in a function if you want. You'll either have to define which columns to send or assume all. i.e. apply(df[ ,2:3],1,f()...
sort(x) is the same as x[order(x)]
My first thought would've been to do this:
dt[, new_var := paste(sort(.SD), collapse = ", "), by = 1:nrow(dt)]
But you could make your function work with a couple of simple modifications:
f = function(...) paste(c(...)[order(c(...))],collapse=", ")
dt[, new_var := do.call(function(...) mapply(f, ...), .SD)]