В dplyr
, что-то вроде:
library(dplyr)
df %>%
group_by(A) %>%
mutate(
D = paste(paste(B, C, sep = " "), collapse = " ")
)
В data.table
:
library(data.table)
setDT(df)[, D := paste(paste(B, C, sep = " "), collapse = " "), by = A]
Редактировать: я перезапустил вам пример и увидел, что вы создаете столбецДНК, которая имеет немного другую структуру.
Если вы хотите получить такой столбец, вы просто замените внутреннюю часть в dplyr
на DNA = paste(paste0(B, C), collapse = ", ")
и DNA := paste(paste0(B, C), collapse = ", ")
в data.table
.
Я такжепропустите через microbenchmark
, так как вы сказали, что вас интересует скорость (единица измерения - миллисекунды):
DNA function
: 4.013901
dplyr
: 1.664197
data.table
: 0,7746959