Добавлены повторяющиеся строки - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть матрица, например,

     [,1]     [,2]
[1,]  11212    10
[2,]  133      10
[3,]   15      9
[4,]   10      9

Я хочу сложить время повторения столбца 2 и отобразить это в столбце 1.

Для этого примера вывод будет


     [,1]     [,2]
[1,]   11345    1
[2,]   25    0

Приветствия

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Может быть, вы можете попробовать код ниже

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)
0 голосов
/ 22 апреля 2020

В зависимости от ваших дальнейших действий вам следует подумать об использовании 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...