Я могу использовать функцию tapply для выполнения основных операций (например, используя данные mtcars, рассчитать средний вес по количеству цилиндров).
library(data.table)
mtcars <- data.table(mtcars)
tapply(X = mtcars[,wt],
INDEX = mtcars[,cyl],
mean)
Однако я не знаю, как выполнять более сложные операции. Например. Корреляция между переменными веса и qsec по количеству цилиндров.
Я пробовал что-то вроде следующего, но это не работает
tapply(X = mtcars[,.(wt, qsec)],
INDEX = mtcars[,cyl],
cor.test(mtcars[,wt], mtcars[,qsec]))
Error in match.fun(FUN) : 'cor.test(mtcars[, wt], mtcars[, qsec])' is not a function, character or symbol
tapply(X = rownames(mtcars[,.(wt,qsec,cyl)]),
INDEX = mtcars[,cyl],
function(r) cor.test(mtcars[r, 1],
mtcars[r, 2])
Есть идеи, как сделать это эффективно с помощью функции t / apply?