Извините, люди, я не вижу лес для деревьев. Я много искал, но не смог найти решение. Я хочу, например, среднее значение для каждой единицы (возможно, rowMeans
) подмножества переменных в матрице (или, возможно, фрейме данных) в R
. Я хотел бы выбрать столбцы, используя вектор индексирования, как в tapply
, который я назвал a1
в приведенном ниже примере.`apply`` rowMeans` через несколько наборов столбцов
> set.seed(23958)
> (dat <- matrix(sample(0:3, 10, replace = TRUE), ncol = 5))
[,1] [,2] [,3] [,4] [,5]
[1,] 2 3 0 2 1
[2,] 2 1 1 2 1
> set.seed(6112)
> (a1 <- sample(1:2, 5, replace = TRUE))
[1] 1 1 2 2 1
Решение в данном примере должно выглядеть так, но, конечно, я хотел бы сделать это в более всеобъемлющим образом. Я думал, что должен использовать функцию из семейства apply
, но я не мог узнать, какой из них.
> cbind(rowMeans(dat[, a1 == 1]), rowMeans(dat[, a1 == 2]))
[,1] [,2]
[1,] 2.000000 1.0
[2,] 1.333333 1.5
Вы должны установить семя, чтобы сделать ваш пример воспроизводимым. – agstudy