Calcular a soma de uma lista de variáveis por grupo
Eu tenho um data.table com uma chave e cerca de 100 linhas numéricas, uma das quais é definida como chave. Gostaria de criar uma nova variável que contenha a soma de cada linha numérica, agrupada por chave.
Por exemplo, meus dados agora são
ID Count1 Count2 Count3
1 1 3 0
1 3 3 3
2 1 2 1
3 1 1 2
O que eu gostaria de ter é:
ID Count1 Count2 Count3
1 4 6 3
2 1 2 1
3 1 1 2
Eu tentei muitas maneiras de conseguir isso. Eu sei que posso fazer
Y <- X[, list(Count=sum(Count1), Count2=sum(Count2), Count3=sum(Count3), by = ID]
No entanto, tenho centenas de variáveis e só obtenho seus nomes em uma lista. Como devo proceder para lidar com isso?
Muito obrigado por sua ajuda.
Aqui está um código para gerar dados de teste:
ID <-c(rep(210, 9), rep(3917,6))
Count1 <- c(1,1,0,1,3,1,4,1,1,1,1,1,1,0,1)
Count2 <- c(1,0,0,1,0,1,0,1,1,1,1,1,1,0,1)
Count3 <- c(1,0,0,1,0,1,0,1,1,1,1,1,1,0,1)
x <- data.table(ID, Count1, Count2, Count3)
setkey(x, ID)