У меня есть матрица, например,
[,1] [,2] [1,] 11212 10 [2,] 133 10 [3,] 15 9 [4,] 10 9
Я хочу сложить время повторения столбца 2 и отобразить это в столбце 1.
Для этого примера вывод будет
[,1] [,2] [1,] 11345 1 [2,] 25 0
Приветствия
Может быть, вы можете попробовать код ниже
mout <- cbind(unname(tapply(m[,1], factor(m[,2],levels = unique(m[,2])), sum)),unique(m[,2])) > mout [,1] [,2] [1,] 13 1 [2,] 15 0
Данные
m <- matrix(c(12,1,5,10,1,1,0,0),ncol = 2)
В зависимости от ваших дальнейших действий вам следует подумать об использовании data.table (package data.table).
dt <- data.table::data.table(x=c(12, 1, 5, 10), y=c(1, 1, 0, 0)) dt[,.(x=sum(x)), by=y]