GOOGLE ADS

среда, 11 мая 2022 г.

Как заменить разные значения в растре?

если у меня есть этот растр

r1 <- raster(nrow=10, ncol=10)
vv=c(1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5,1:5)
values(r1) <- vv

Как это сделать:

replace by
3 1
5 2
2 3
4 5
1 4

я знаю, что мы можем сделать

r1[r1==3]=1 but then it will problematic with values already = 1 (that I need to replace by 4!!

Решение проблемы

В этом конкретном случае (где текущие значения представляют собой непрерывные целые числа с низким значением, начинающиеся с 1), вы можете использовать текущие значения в качестве индексов вектора замены:

r1[] <- c(4, 3, 1, 5, 2)[r1@data@values]

Более общее решение, если у вас есть и то и другое, replaceи byопределено,

r1[] <- by[match(r1@data@values, replace)]

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...