Obtendo uma fatia data.table com uma sequência de índices (linha, col)

eu tenho umdata.table que se assemelha ao abaixo.

tab <- data.table(a = c(NA, 42190, NA), b = c(42190, 42190, NA), c = c(40570, 42190, NA))
tab
       a     b     c
1:    NA 42190 40570
2: 42190 42190 42190
3:    NA    NA    NA

Após a especificação de um vetor de índices de linha e um vetor de índices de coluna, eu gostaria que um vetor retornasse contendo os pontos emtab correspondente ao vetor especificado de índices de linha e de coluna.

Por exemplo, suponha que eu queira obter os elementos diagonais emtab. Eu especificaria dois vetores,

ri <- 1:3
ci <- 1:3

e alguma função,function(ri, ci, tab), retornaria os elementos diagonais detab.

E setab eram umdata.frame, Eu faria o que está abaixo,

as.data.frame(tab)[cbind(ri, ci)]

mas gostaria de evitardata.frame sintaxe. Eu também gostaria de evitar umafor loop, pois isso tende a ser lento.

questionAnswers(2)

yourAnswerToTheQuestion