суммировать столбец с data.table с помощью rlang

Я новичок в data.table
Как сделать то же самое с data.table, используя rlang?

library(tidyverse)
library(data.table)

gr <- "Species"
col <- "Petal.Length"

iris %>% 
  group_by(!!rlang::sym(gr)) %>% 
  summarise_at(vars(!!rlang::sym(col)),sum)

iris1 <- iris 
setDT(iris1)
iris1[,sum(!!rlang::sym(col)),by=!!rlang::sym(gr)]

person jyjek    schedule 16.07.2019    source источник


Ответы (1)


Вы бы использовали get:

iris1[, sum(get(col)), by = get(gr)]

Как указал @mmn, вы также можете пропустить get в аргументе by.

person arg0naut91    schedule 16.07.2019
comment
хотел бы добавить, что by принимает character, поэтому вам не нужно get в by. - person mmn; 16.07.2019
comment
Вы правы, однако я обычно использую get или mget даже в by, поскольку это помогает различать ссылку на фактическое имя столбца, аргумент функции и т. Д. - person arg0naut91; 16.07.2019
comment
Хороший момент, просто хотел добавить эту опцию как дополнительную возможность - person mmn; 16.07.2019