У меня большой фрейм данных (1000x1000), и я хочу найти все максимумы в подмножествах.
mat = diag(10-abs(-10:10)) # test matrix
Я пытался использовать цикл for
для следующих 3 шагов, но он не работал:
- извлечение последовательных подмножеств 3x3,
- найдите максимум внутри каждого,
- , затем измените все значения подмножества на 0, а максимум на 1.
Код
for (x in (1+2):(nrow(mat)-2)){
for (y in (1+2):(ncol(mat)-2)){
subset = mat[x:(x+2), y:(y+2)]
wm = which.max(subset)
mat[row(subset)[wm], col(subset)[wm]] == 1
}}
Любой совет/ исправление приветствуется: -)