次のデータがあります。
library(data.table)
d = data.table(a = c(1:3), b = c(2:4))
そして、この結果を取得したいと思います(任意の数の列で機能する方法で):
d[, c := paste0('a_', a, '_b_', b)]
d
# a b c
#1: 1 2 a_1_b_2
#2: 2 3 a_2_b_3
#3: 3 4 a_3_b_4
以下はうまくいきますが、もっと短くて読みやすいものを見つけたいと思っています。
d = data.table(a = c(1:3), b = c(2:4))
d[, c := apply(mapply(paste, names(.SD), .SD, MoreArgs = list(sep = "_")),
1, paste, collapse = "_")]