Ошибка: «неподдерживаемый индекс матрицы при замене» при замене 0 на NA - PullRequest
0 голосов
/ 03 мая 2020

У меня есть шейп-файл с колонкой для численности видов и один для богатства видов. Вы можете найти его здесь: Dropbox

и загрузить его с st_read().

Я создал его с этим кодом:

library(tidyverse)
library(sf)

spatial_data <- st_join(hex3, iso_shallow_sf, join = st_contains) %>% 
  group_by(ID) %>% 
  summarise(abundance = length(scientific[!is.na(scientific)]), 
            richness = n_distinct(scientific[!is.na(scientific)]))

hex3 это шейп-файл, который содержит шестиугольную сетку, тип геометрии - многоугольник. iso_shallow_sf - это другой шейп-файл, который содержит названия видов со связанной геометрией точки.

В столбцах «обилие» и «богатство» файла пространственных_данных много нулей. Я хочу заменить эти нули на NA.

Я преобразовал его в фрейм данных spatial_data <- spatial_data %>% as.data.frame()

и попытался spatial_data[spatial_data == 0] <- NA, который вернул: Ошибка в [<-.data.frame (*tmp*, Пространственные_данные == 0, значение = NA): неподдерживаемый матричный индекс при замене

Я также попытался na_if(spatial_data, 0), что вернуло: Ошибка в [<-.data.frame (*tmp*, x == y, значение = NA): Неподдерживаемый матричный индекс в замене

Если я делаю na_if(spatial_data[,c(2,3)], 0), я получаю фрейм данных с замененными нулями, который содержит только два отредактированных столбца.

Как я могу заменить нули на NA и сохранить все данные из пространственных_данных в одном и том же формате? После этого я хочу преобразовать его обратно в объект SF.

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...